udp客户端,对应服务端,发回的,登录相关,网络消息回包,处理逻辑,是打印log

对应服务端,发回的,背包相关,网络消息回包,处理逻辑,也是打印log

ClientRecive函数接口,是客户端的await异步接收,服务端发过来网络消息的逻辑,也是调用常规的,解序列化DeSerialize接口,通过头部的cmd协议标识,调用,对应登录的 loginHandler 和背包的 bagHandler 处理响应逻辑 即可

客户端的,逻辑根节点,也是声明一个udp客户端、登录和背包的Handler回包处理逻辑,对应服务器ip、单例instance和获取器

客户端,Init初始化接口,完成各变量的初始化,也是通过Task创建ClientRecive的,消息接收任务

ReqLogin是客户端,请求登录的接口

ReqBag是客户端,请求背包数据的接口

客户端对应的,Main主函数,调用对应,逻辑根节点的Init初始化,然后while死循环中,ReadLine监听输入,如果输入"login"就会发送,客户端登录请求; 如果输入"bag"就会发送,提取背包数据请求;

先后调试,服务端、客户端,对应log正常

客户端,输入,回车

服务端接收到请求→发回包→客户端接收到回包,打印log都正常

继续测试背包,客户端,输入,回车,log都正常

解析一下,Protobuf对应的.proto后缀文件,结构; 协议包名称自定义LogicProtocol,相关的修饰符,message协议、required字段

继续,也有enum枚举

继续,完成剩余的,数据包整体,构建,还有修饰符Optional,表示这是可选字段,可有可无

参考protobuf的Required,Optional,Repeated限定修饰符即可 对应的run.bat批处理文件,所在路径

批处理脚本逻辑,会调用soft目录的protogen.exe可执行程序,将NetProtocol.proto协议文件,解析成脚本逻辑文件; C#相关的,输出路径是,回到上层目录,然后再前往,仨文件夹,分别对应:UDP客户端、UDP服务端、unity客户端的Asset目录对应的文件夹; 还有一个是java相关的,会输出到,java服务器的相关路径;

双击运行,log显示,生成脚本正常

对应生成路径,也正常

服务端,对应protobuf的,登录请求回调,调用的是,对应protobuf的逻辑根节点,包含的SendMsg发送消息接口

protobuf的逻辑根节点,对应的SendMsg发送消息逻辑接口,使用的是,protobuf内部的Serializer序列化逻辑

服务端,protobuf对应的,背包请求,同理

protobuf逻辑根节点,跟常规的基本一致,只是更换了Serializer序列化相关机制

修改服务端调用

客户端对应protobuf的脚本,同理

修改调用,同理

调试服务端+客户端,log正常

打开unity客户端,这是挂载的脚本

文件结构,和客户端实例,基本相同

Start开始函数,主要修改一下,对应的ip即可

Update更新函数,输入L是登录请求,输入B是背包请求

运行游戏,输入L和B,回包log打印,正常

服务端log,也正常