通用异步网络通信库_第一章
解析项目结构,涉及用到解析的,是这几个项目
先确保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调用接口,参考IAsyncResult和AsyncState
调用最外部的,是SendMsg接口,在调用之前,会使用AsyncTool的序列化工具,和打包,TCP网络数据包的PackLenInfo接口,返回得到的,字节数组,再调用
关闭连接的,是CloseSession函数接口,修改AsyncSessionState连接撞他,然后调用OnDisConnected函数,断开连接
是对应的这个抽象函数声明,会分别在,客户端Session和服务器端Session完成重写
还有俩,分别是连接上,和接受信息的抽象函数接口,都是在,客户端Session和服务器端Session,完成重写
具体逻辑,都只是log打印