解析项目结构,涉及用到解析的,是这几个项目

先确保AsyncNetExampleServer服务器项目,对应的服务器插件,右键入口

为了方便调试跳转,把这个从官方下载的,移除

客户端AsyncNetExampleClient项目,同理,操作

添加引用

确保这个已添加即可,客户端工程,同理操作

打开对应的Unity工程,这是对应的程序集,所在路径

复制路径

在对应的程序库,右键,设置属性入口

粘贴到输出路径即可

后续构建,就会输出到这里

协议相关,也需要设置一下引用,同理

同理,设置输出路径

构建测试,成功

数据包的逻辑体,这是TCP异步传输,头部长度是4,参考TCP 图解; headerLength(头长度),该字段用四位表示,表示整个ip包头的长度,其中数的单位是4字节。即二进制数0000-1111(十进制数0-15); 而InitBodyBuff函数接口,是初始化,消息体的逻辑,ResetData函数接口,是重置各个数据信息的;

解析一下,异步网络调试,用到的工具类,是打印log相关的,先弄枚举,分别对应不同的log颜色

通过switch,传参就是调用AsyncLogColor枚举,使用ConsoleLog接口,完成不同颜色的WriteLine打印

不同的颜色Action委托,最简单的,是Log无颜色接口,调用原生的即可

然后,ColorLog接口,是主要外部调用的,不同颜色打印log信息,调用上述解析的ConsoleLog函数接口,完成打印即可; 还有警告Warn打印黄色信息,错误Error打印红色信息;

工具类,包括PackLenInfo打包信息接口,完成TCP网络信息包的构建,返回字节数组

分别是序列化包体,和解序列化包体,对应的都是AsyncMsg类

对应的是这个,加了可序列标签的抽象类

对应的继承体,是在协议里

弄一个枚举,是代表不同的网络连接状态

发送信息,最外部的SendCB调用接口,参考IAsyncResultAsyncState

调用最外部的,是SendMsg接口,在调用之前,会使用AsyncTool的序列化工具,和打包,TCP网络数据包的PackLenInfo接口,返回得到的,字节数组,再调用

关闭连接的,是CloseSession函数接口,修改AsyncSessionState连接撞他,然后调用OnDisConnected函数,断开连接

是对应的这个抽象函数声明,会分别在,客户端Session和服务器端Session完成重写

还有俩,分别是连接上,和接受信息的抽象函数接口,都是在,客户端Session和服务器端Session,完成重写

具体逻辑,都只是log打印