炫意html5
最早CSS3和HTML5移动技术网站之一

Socket.Accept() 断线后无法重连?

最近在做一个tcp服务器,服务断用 var socket = Socket.Accept() 监听请求,但在客户端断开后无法重连。
1.var socket = Socket.Accept() 产生一个新的socket接收数据正常
2.当前 socket 客户端因某些原因断开连接后,无法再次连接到服务器,通过抓包,客户端是有发送连接请求的,但都被服务端重置了。

回答

问题补充:

示例:
条件1:服务端在死循环内使用 var socket = await _server.AcceptAsync(); 接收请求,不考虑断开和重启(也没有断开过)。
条件2:假如有一个ip为192.168.1.2的客户端请求并正常连接到服务端(socketid == 2),然后因为某些原因断开连接。
条件3:因为服务端有下发心跳包,在检测到客户端断开后已经将 socketid == 2 的 socket 销毁并设置为null
条件4:问题,ip为192.168.1.2的客户端再次请求连接服务端无法连接。

炫意HTML5 » Socket.Accept() 断线后无法重连?

Java基础教程Android基础教程