位置: 编程技术 - 正文
推荐整理分享Unity3d 游戏与C#服务器 异步Socket 交互 (一)(c和unity3d),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:c和unity3d,c和unity3d,unity的c#和标准的c#,unity与c++的关系,unity的c#和标准的c#,unity3d vs,unity3d和c语言,unity和c#关系,内容如对您有帮助,希望把文章链接给更多的朋友!
Unity3d中提供了Socket供开发者使用,语法和.net中的一致。
一般来说,对于手游客户端,分为两个线程,一个是GLES渲染,另一个就是Socket线程了。
文章转自( 是IP地址和端口的整合类型
Socket:创建Socket是根据IP地址和端口号来创建的
Protocoltype.Tcp:指定使用TCP协议。(关于TCP与UDP,简单说就是TCP确保一个数据包一定发送成功,UDP就不管。详情请百度谷歌搜索等等)
BeginAccept:开始监听客户端的联入。注意这是一个异步函数。这个函数执行后马上就会执行后面的代码,如果后面没有循环的程序,那么程序就会退出!
所以这里用了ManualResetEvent来等待结果。
我们也可以单开线程来达到这个效果,文章后面会贴上两种方式的代码。
异步Socket方式,每个操作都要求传入一个回调函数。(不然人家执行完了怎么接着往下执行……)比如上面的BeginAccept 传入了一个回调函数 Accept,并且带了参数serverSocket 。意思就是 BeginAccept执行完毕后会调用Accept并且传入serverSocket。
文章转自( 。这也是一个异步操作,同样我们要传入一个回调函数。
以前没有做过网络游戏的朋友有疑问,在接收数据的时候,怎么知道到底接收完成了没有?上面的代码中,有一个特殊的数字 4 。
这是我们用来存放数据包大小的一个变量。
数据包=数据大小(4字节)真实数据
按照上面的结构组建数据包,在接收到数据的时候,我们只要判断接收到的数据大小-4是不是等于数据大小。
好了。下面是例子的源代码:
(一)使用ManualResetEvent协作:
文章转自(手机游戏服务器引擎Scut免费开源
unity3d中的.meta是什么东东 转载请注明出处:
角色骨架蒙皮与Unity插件的结合运用
标签: c和unity3d
本文链接地址:https://www.jiuchutong.com/biancheng/375785.html 转载请保留说明!友情链接: 武汉网站建设