152 lines
4.6 KiB
Markdown
152 lines
4.6 KiB
Markdown
|
|
udp客户端,对应服务端,发回的,登录相关,网络消息回包,处理逻辑,是打印log
|
|||
|
|
|
|||
|
|
![[Pasted image 20240418160819.png]]
|
|||
|
|
|
|||
|
|
对应服务端,发回的,背包相关,网络消息回包,处理逻辑,也是打印log
|
|||
|
|
|
|||
|
|
![[Pasted image 20240418160849.png]]
|
|||
|
|
|
|||
|
|
ClientRecive函数接口,是客户端的[[await]]异步接收,服务端发过来网络消息的逻辑,也是调用常规的,解序列化DeSerialize接口,通过头部的cmd协议标识,调用,对应登录的 loginHandler 和背包的 bagHandler 处理响应逻辑 即可
|
|||
|
|
|
|||
|
|
![[Pasted image 20240418160934.png]]
|
|||
|
|
|
|||
|
|
客户端的,逻辑根节点,也是声明一个udp客户端、登录和背包的Handler回包处理逻辑,对应服务器ip、单例instance和获取器
|
|||
|
|
|
|||
|
|
![[Pasted image 20240418161250.png]]
|
|||
|
|
|
|||
|
|
客户端,Init初始化接口,完成各变量的初始化,也是通过[[Task]]创建ClientRecive的,消息接收任务
|
|||
|
|
|
|||
|
|
![[Pasted image 20240418161342.png]]
|
|||
|
|
|
|||
|
|
ReqLogin是客户端,请求登录的接口
|
|||
|
|
|
|||
|
|
![[Pasted image 20240418161452.png]]
|
|||
|
|
|
|||
|
|
ReqBag是客户端,请求背包数据的接口
|
|||
|
|
|
|||
|
|
![[Pasted image 20240418161520.png]]
|
|||
|
|
|
|||
|
|
客户端对应的,Main主函数,调用对应,逻辑根节点的Init初始化,然后while死循环中,ReadLine监听输入,如果输入"login"就会发送,客户端登录请求;
|
|||
|
|
如果输入"bag"就会发送,提取背包数据请求;
|
|||
|
|
|
|||
|
|
![[Pasted image 20240418161555.png]]
|
|||
|
|
|
|||
|
|
先后调试,服务端、客户端,对应log正常
|
|||
|
|
|
|||
|
|
![[Pasted image 20240418161808.png]]
|
|||
|
|
|
|||
|
|
![[Pasted image 20240418161750.png]]
|
|||
|
|
|
|||
|
|
客户端,输入,回车
|
|||
|
|
|
|||
|
|
![[Pasted image 20240418161822.png]]
|
|||
|
|
|
|||
|
|
服务端接收到请求→发回包→客户端接收到回包,打印log都正常
|
|||
|
|
|
|||
|
|
![[Pasted image 20240418161908.png]]
|
|||
|
|
|
|||
|
|
![[Pasted image 20240418161921.png]]
|
|||
|
|
|
|||
|
|
继续测试背包,客户端,输入,回车,log都正常
|
|||
|
|
|
|||
|
|
![[Pasted image 20240418161952.png]]
|
|||
|
|
|
|||
|
|
![[Pasted image 20240418162004.png]]
|
|||
|
|
|
|||
|
|
![[Pasted image 20240418162013.png]]
|
|||
|
|
|
|||
|
|
解析一下,Protobuf对应的.proto后缀文件,结构;
|
|||
|
|
协议包名称自定义LogicProtocol,相关的修饰符,message协议、required字段
|
|||
|
|
|
|||
|
|
![[Pasted image 20240418162214.png]]
|
|||
|
|
|
|||
|
|
继续,也有enum枚举
|
|||
|
|
|
|||
|
|
![[Pasted image 20240418162418.png]]
|
|||
|
|
|
|||
|
|
继续,完成剩余的,数据包整体,构建,还有修饰符Optional,表示这是可选字段,可有可无
|
|||
|
|
|
|||
|
|
![[Pasted image 20240418162434.png]]
|
|||
|
|
|
|||
|
|
参考[[protobuf的Required,Optional,Repeated限定修饰符]]即可
|
|||
|
|
对应的run.bat批处理文件,所在路径
|
|||
|
|
|
|||
|
|
![[Pasted image 20240418164721.png]]
|
|||
|
|
|
|||
|
|
批处理脚本逻辑,会调用soft目录的protogen.exe可执行程序,将NetProtocol.proto协议文件,解析成脚本逻辑文件;
|
|||
|
|
C#相关的,输出路径是,回到上层目录,然后再前往,仨文件夹,分别对应:UDP客户端、UDP服务端、unity客户端的Asset目录对应的文件夹;
|
|||
|
|
还有一个是java相关的,会输出到,java服务器的相关路径;
|
|||
|
|
|
|||
|
|
![[Pasted image 20240418164701.png]]
|
|||
|
|
|
|||
|
|
双击运行,log显示,生成脚本正常
|
|||
|
|
|
|||
|
|
![[Pasted image 20240418165120.png]]
|
|||
|
|
|
|||
|
|
对应生成路径,也正常
|
|||
|
|
|
|||
|
|
![[Pasted image 20240418165155.png]]
|
|||
|
|
|
|||
|
|
![[Pasted image 20240418165210.png]]
|
|||
|
|
|
|||
|
|
服务端,对应protobuf的,登录请求回调,调用的是,对应protobuf的逻辑根节点,包含的SendMsg发送消息接口
|
|||
|
|
|
|||
|
|
![[Pasted image 20240418165335.png]]
|
|||
|
|
|
|||
|
|
protobuf的逻辑根节点,对应的SendMsg发送消息逻辑接口,使用的是,protobuf内部的Serializer序列化逻辑
|
|||
|
|
|
|||
|
|
![[Pasted image 20240418165424.png]]
|
|||
|
|
|
|||
|
|
![[Pasted image 20240418165537.png]]
|
|||
|
|
|
|||
|
|
服务端,protobuf对应的,背包请求,同理
|
|||
|
|
|
|||
|
|
![[Pasted image 20240418165602.png]]
|
|||
|
|
|
|||
|
|
protobuf逻辑根节点,跟常规的基本一致,只是更换了Serializer序列化相关机制
|
|||
|
|
|
|||
|
|
![[Pasted image 20240418165655.png]]
|
|||
|
|
|
|||
|
|
![[Pasted image 20240418165732.png]]
|
|||
|
|
|
|||
|
|
修改服务端调用
|
|||
|
|
|
|||
|
|
![[Pasted image 20240418165802.png]]
|
|||
|
|
|
|||
|
|
客户端对应protobuf的脚本,同理
|
|||
|
|
|
|||
|
|
![[Pasted image 20240418165841.png]]
|
|||
|
|
|
|||
|
|
修改调用,同理
|
|||
|
|
|
|||
|
|
![[Pasted image 20240418165901.png]]
|
|||
|
|
|
|||
|
|
调试服务端+客户端,log正常
|
|||
|
|
|
|||
|
|
![[Pasted image 20240418170037.png]]
|
|||
|
|
|
|||
|
|
![[Pasted image 20240418170049.png]]
|
|||
|
|
|
|||
|
|
打开unity客户端,这是挂载的脚本
|
|||
|
|
|
|||
|
|
![[Pasted image 20240418170204.png]]
|
|||
|
|
|
|||
|
|
文件结构,和客户端实例,基本相同
|
|||
|
|
|
|||
|
|
![[Pasted image 20240418170234.png]]
|
|||
|
|
|
|||
|
|
Start开始函数,主要修改一下,对应的ip即可
|
|||
|
|
|
|||
|
|
![[Pasted image 20240418170304.png]]
|
|||
|
|
|
|||
|
|
Update更新函数,输入L是登录请求,输入B是背包请求
|
|||
|
|
|
|||
|
|
![[Pasted image 20240418170333.png]]
|
|||
|
|
|
|||
|
|
运行游戏,输入L和B,回包log打印,正常
|
|||
|
|
|
|||
|
|
![[Pasted image 20240418170412.png]]
|
|||
|
|
|
|||
|
|
服务端log,也正常
|
|||
|
|
|
|||
|
|
![[Pasted image 20240418170431.png]]
|