![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Socket编程
文章平均质量分 88
Mickey丶笑风沙
这个作者很懒,什么都没留下…
展开
-
Socket客户端异步连接超时设置
在使用TCP异步方式时,若客户端直接使用socket.Connect方法进行判断时,当客户端与服务器进行连接,而服务器不存在时,程序处于无响应状态,怀疑此时客户端处于阻塞状态,需要过七八秒甚至十几秒才会抛出异常。 因此需要使用socket.BeginConnect方法进行异步连接。当点击创建房间按钮时,会执行如下方法:ToConnect()如上图,其中原始方法会出现软件无响应的现象,...原创 2019-10-12 18:36:55 · 1474 阅读 · 0 评论 -
Socket编程之TcpClient、TcpListener在Unity3D中的应用
经过一段时间的学习,对于TCP/IP协议有了一定的认识,大概知道了TCP协议通信的原理,接下来主要实现用TcpClient、TcpListener两个封装类和stream来实现一个小的demo:用vs建一个工程作为服务器,然后用Unity引擎作为客户端,实现客户端和服务器,客户端和客户端之间的通信。由于入坑试验多次,这里强调一下通信时候的数据转换,当在客户端发送信息的时候,会将用户输入的字符串...原创 2018-09-27 09:59:41 · 3448 阅读 · 0 评论 -
Socket通信中粘包分包问题的介绍和解决(C#)
最近在做Unity局域网时,用到了Socket通信基于TCP协议,然后使用异步方式,主要用到了BeginAccept和BeginReceive方法然而就可以实现异步通信,然而还是要解决粘包和分包问题这里我先说明一下什么是分包和粘包,TCP提供面向连接的、可靠的数据流传输,所以当我们发送数据在短时间内比较频繁并且数据量比较小时,TCP为了优化内存资源,会将多条数据粘成几个包来进行处理,相比发...原创 2018-12-19 09:58:08 · 4984 阅读 · 2 评论 -
用Unity实现LOL游戏中聊天对话框的功能
基于Socket,用UGUI实现游戏场景中玩家的聊天如图,聊天UI分为两部分:对话框、输入框。 实现的功能如下1.默认情况下,对话框不可见,按下回车键显示对话框和输入框,鼠标光标在输入框2.再按一下回车键,输入框消失,再按回车键,输入框出现3.当只有对话框没有输入框时,对话框持续显示4s,然后渐变消失4.在输入框输入文本,按回车键后消息发送,在对话框显示,输入框消失,过4s...原创 2019-01-27 18:12:27 · 3782 阅读 · 3 评论 -
TCP异步方式解决粘包和分包问题
1.TCP同步方式和异步方式的比较 TCP同步方式:好处在于Socket连接、接收数据简单,过程不复杂,但若没有玩家连接,程序处于阻塞状态,效率低,只能实现双人同台,且程序容易卡死,如果要实现多个玩家在线,需要在Unity中使用C#的多线程,会比较复杂。 TCP异步方式:可以实现真正意义上的多人同台,在不使用C#多线程的情况下(其实还是使用了多线程,Socket相...原创 2019-09-30 14:48:17 · 2965 阅读 · 3 评论