unity学习(15)——服务器组装(1)

1.新建好的c#项目如下:

文件夹中内容如下:

此时已经可以通过vs2022打开.sln文件,就可以打开项目了

2.我们把逆向后(主程序)的内容的代码粘贴过去。有些逆向功底,很快可以定位到,服务器的入口函数ServerStart.start(10100);

其原始代码如下:

namespace GameServer.Hnalder
{internal class ServerStart{private static Socket server;public static void start(int port){ServerStart.server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);ServerStart.server.Bind((EndPoint) new IPEndPoint(IPAddress.Any, port));ServerStart.server.Listen(20);ServerStart.server.BeginAccept(new AsyncCallback(ServerStart.AcceptCallBack), (object) ServerStart.server);}public static void stop(){ServerStart.server.Dispose();ServerStart.server.Close();}private static void AcceptCallBack(IAsyncResult ar){MyLog.form.textAdd("有客户端连接");try{Socket asyncState = (Socket) ar.AsyncState;Socket socket = asyncState.EndAccept(ar);Session session = new Session();session.socket = socket;LogicHandler.getInstance().sessionOpen(session);socket.BeginReceive(session.message, 0, session.message.Length, SocketFlags.None, new AsyncCallback(ServerStart.ReceiveCallBack), (object) session);asyncState.BeginAccept(new AsyncCallback(ServerStart.AcceptCallBack), (object) asyncState);}catch{}}private static void ReceiveCallBack(IAsyncResult ar){Session asyncState = (Session) ar.AsyncState;try{int count = asyncState.socket.EndReceive(ar);if (count == 0){MyLog.form.textAdd("有客户端断开连接");LogicHandler.getInstance().sessionClose(asyncState);return;}byte[] numArray = new byte[count];Buffer.BlockCopy((Array) asyncState.message, 0, (Array) numArray, 0, count);ServerStart.readMessage(asyncState, numArray);}catch (SocketException ex){LogicHandler.getInstance().sessionClose(asyncState);asyncState.socket.Close();return;}asyncState.socket.BeginReceive(asyncState.message, 0, asyncState.message.Length, SocketFlags.None, new AsyncCallback(ServerStart.ReceiveCallBack), (object) asyncState);}public static void readMessage(Session session, byte[] bytes){try{ByteArray byteArray = new ByteArray(bytes);int num1 = byteArray.ReadInt();int num2 = byteArray.ReadInt();int num3 = byteArray.ReadInt();int length = byteArray.ReadInt();string str = (string) null;if (length > 0)str = byteArray.ReadUTFBytes((uint) length);LogicHandler.getInstance().process(session, new SocketModel(){Type = num1,Area = num2,Command = num3,Message = str});}catch{}}}
}

 直接沾进去,一共16个问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/478946.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

二维码钓鱼激增587%:用户陷入社交诈骗陷阱!

Check Point软件技术公司发布的新研究揭示了典型的QR码攻击,通过Check Point的实时网络威胁地图,在两周内发现了2万起QR码钓鱼和恶意软件攻击事件,突显了QR码在网络犯罪分子面前的脆弱性。 QR码是"Quick Response Code"&#xff08…

sensitive-word v0.13 特性版本发布 支持英文单词全词匹配

拓展阅读 sensitive-word-admin v1.3.0 发布 如何支持分布式部署? sensitive-word-admin 敏感词控台 v1.2.0 版本开源 sensitive-word 基于 DFA 算法实现的高性能敏感词工具介绍 更多技术交流 业务背景 对于英文单词 Disburse 之类的,其中的 sb 字母会被…

CDC 整合方案:MySQL > Flink CDC > Kafka > Hudi

博主历时三年精心创作的《大数据平台架构与原型实现:数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行,点击《重磅推荐:建大数据平台太难了!给我发个工程原型吧!》了解图书详情,…

【数据结构】每天五分钟,快速入门数据结构(一)——数组

目录 一.初始化语法 二.特点 三.数组中的元素默认值 四.时间复杂度 五.Java中的ArrayList类 可变长度数组 1 使用 2 注意事项 3 实现原理 4 ArrayList源码 5 ArrayList方法 一.初始化语法 // 数组动态初始化(先定义数组,指定数组长度&#xf…

移动通信相关知识学习笔记

一、移动通信架构简图 移动无线的接入网是专指各种基站设备。核心网就是各种交换机。 二、无线信号基本原理 无线网络中,使用AP设备和天线来实现有线和无线信号互相转换。如上图所示,有线网络侧的数据从AP设备的有线接口进入AP后,经AP处理为…

电子邮件是什么意思?电子邮箱有什么作用?

电子邮件的定义是什么?怎么申请电子邮箱比较好? 伴随着科技的飞速发展,逐渐渗透到我们的工作、学习和生活中。那么,电子邮件到底是什么意思呢?它又是如何影响我们的日常生活的呢?接下来,就让蜂…

C# CAD交互界面-自定义面板集-comboBox选择图层

运行环境Visual Studio 2022 c# cad2016 一、代码说明 SelectLayer方法是一个自定义的AutoCAD命令方法,通过[CommandMethod("SelectLayer")]进行标记。方法首先获取当前活动文档,并检查是否有效。创建一个名为"SelectLayer"的Pale…

即时设计好用吗?怎么用?

进行 UI 设计,除了选择合适的工具,如果能提前掌握一些软件的使用技巧,提高每一步的操作效率,积累起来也能提高整体设计效率。所以这篇文章想给大家介绍一下国内高效的在线设计工具。 即时设计,让你的 UI 设计效率快到飞…

线程池:优化多线程管理的利器

引言 同步和异步想必各位都有了解,同步简单来说就是一件事做完再去做下一件;异步则是不用等一件事做完,就可以去做另一件事,当一件事完成后可以收到对应的通知;异步一般应用于一些耗时较长的操作,比如大型…

分布式锁的应用场景及实现

文章目录 分布式锁的应用场景及实现1. 应用场景2. 分布式锁原理3. 分布式锁的实现3.1 基于数据库 分布式锁的应用场景及实现 1. 应用场景 电商网站在进行秒杀、特价等大促活动时,面临访问量激增和高并发的挑战。由于活动商品通常是有限库存的,为了避免…

LabVIEW读取excel日期

LabVIEW读取excel日期 | Excel数据表格中有日期列和时间列,如下表所示: 通过LabVIEW直接读取Excel表格数据,读出的日期列和时间列数据与原始表格不一致,直接读出来的数据如下表所示: 日期、时间列数据异常 问题产生原因…

Sora新视角:从介绍到商业价值,全面解读优势

关于作者 还是大剑师兰特:曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas,webgl&…