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

大腿Plus Unity3D项目开发1 939阅读模式

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

首先是服务端文章源自大腿Plus-https://www.zhaoshijun.com/archives/546

客户端文章源自大腿Plus-https://www.zhaoshijun.com/archives/546

首先要注意的是Scoket是另外开启线程去使用的,这里有一个坑,就是Scoket传递数据的时候,不是在主线程传递的,所以在Unity里使用的话会报错,说这个数据不是在主线程。所以在发送数据的时候我在Update里把数据传出去。因为Update是在主线程里执行的。所以就避免了上面的问题。文章源自大腿Plus-https://www.zhaoshijun.com/archives/546

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

我的微信
微信扫一扫
weinxin
shijun_z
我的QQ
QQ扫一扫
weinxin
846207670
 最后更新:2021-10-18
大腿Plus
  • 本文由 大腿Plus 发表于 2017年6月16日 11:10:25
  • 转载请务必保留本文链接:https://www.zhaoshijun.com/archives/546