obsidian/笔记文件/2.笔记/通用异步网络通信库_第一章.md
2025-03-26 00:02:56 +08:00

3.8 KiB
Raw Blame History

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

!Pasted image 20240415142046.png

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

!Pasted image 20240415142317.png

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

!Pasted image 20240415142649.png

客户端AsyncNetExampleClient项目同理操作

!Pasted image 20240415142735.png

添加引用

!Pasted image 20240415143034.png

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

!Pasted image 20240415143051.png

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

!Pasted image 20240415143815.png

复制路径

!Pasted image 20240415144352.png

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

!Pasted image 20240415143131.png

粘贴到输出路径即可

!Pasted image 20240415144029.png

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

!Pasted image 20240415144051.png

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

!Pasted image 20240415144108.png

!Pasted image 20240415144153.png

同理,设置输出路径

!Pasted image 20240415144212.png

!Pasted image 20240415144433.png

构建测试,成功

!Pasted image 20240415144534.png

!Pasted image 20240415144518.png

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

!Pasted image 20240415145019.png

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

!Pasted image 20240415154553.png

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

!Pasted image 20240415154825.png

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

!Pasted image 20240415154917.png

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

!Pasted image 20240415155005.png

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

!Pasted image 20240415155200.png

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

!Pasted image 20240415155246.png

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

!Pasted image 20240415155400.png

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

!Pasted image 20240415155421.png

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

!Pasted image 20240415160640.png

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

!Pasted image 20240415160808.png

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

!Pasted image 20240415160916.png

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

!Pasted image 20240415161354.png

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

!Pasted image 20240415161542.png

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

!Pasted image 20240415161629.png

具体逻辑都只是log打印

!Pasted image 20240415161735.png

!Pasted image 20240415161753.png