首页 > Unity3D之项目开发 > Unity3D:使用Socket进行网络数据通信
2017
06-16

Unity3D:使用Socket进行网络数据通信

局域网和广域网的数据通信,在平时做项目的时候经常会用到,之前一直用的是Unity3D自带的NetworkView。NetworkView虽然也可以用但是Unity5.x之后就过时了,而且专业版和个人版都会有连接个数限制,即使是专业版的连接数也是很少,而5.x新的网络通信功能Networking有没有仔细的研究过,所以目前来说比较好用的就是Socket了,下面是我自己根据网上的资料自己整理的代码。

首先是服务端

客户端

首先要注意的是Scoket是另外开启线程去使用的,这里有一个坑,就是Scoket传递数据的时候,不是在主线程传递的,所以在Unity里使用的话会报错,说这个数据不是在主线程。所以在发送数据的时候我在Update里把数据传出去。因为Update是在主线程里执行的。所以就避免了上面的问题。

其实,Socket仔细研究一下也挺有意思的,我在研究的时候经常会出现程序崩溃的现象。但是真正弄出来之后,心情会非常美丽的。最近对上面客户端代码进行了修改,因为经常在发送比较频繁的时候会出现粘包和丢包的问题,所以在发送消息和接受消息的时候,对这个问题进行处理。目前还没发现出什么问题。

最后编辑:
作者:大腿Plus
欢迎大家常来,我不是什么大牛,但是我会将我知道的和大家分享,也希望大家能多提意见,多交流,共同学习。

Unity3D:使用Socket进行网络数据通信》有 1 条评论

  1. Pingback 引用通告: Unity3D:使用Socket进行网络数据通信 – 编程文汇

留下一个回复

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据