Unity项目中的网络封装

项目开发笔记 (六)

Unity中的网络组件难用得要死,于是我自己使用C#自带的socket封装后实现了一个,代码几乎没有用任何C#的高级特性。所以可读性上应该没任何难度的。这个代码本来是项目中不可对外的,不过现在也无所谓了。刚好之前在群里看到有很多朋友找现成的封装,这个就是了哟。

代码结构

简略说明

数据包头设计成6字节,压缩到最小了,其实可以4字节都OK,不过前面两个标识字节感觉还是有点用的,数据包结构如下:

0 1 2,3 4,5 6,buffLenght
8D 8H 数据包长度信息 消息id 具体消息数据

数据包长度只给了2字节,也就是 0~65535byte,我觉得数据包这个范围已经足够,消息ID也给了两个字节,也就是 ID号的范围为 0~65535 一般中型的网络游戏 不会多到有6W种不同的消息吧?

收发数据我使用了两个子线程去处理(也可以把收发数据全部放到一个子线程中)

剩下的和其他语言的网络封装没任何实际性的差别,大家看代码即懂

代码传送门:https://github.com/recter/Unity-Net

发表评论

电子邮件地址不会被公开。 必填项已用*标注