我有一个连接到服务器套接字应用程序客户端,我有当发生断线检测功能:C#插座 - 如何检测如果我的客户已经失去了连接
public static class SocketExtensions
{
public static bool IsConnected(this Socket socket)
{
try
{
return !(socket.Poll(1, SelectMode.SelectRead) && socket.Available == 0);
}
catch (Exception ex)
{
Trace.Exception(ex, true);
return false;
}
}
}
但有时这个功能没有检测到断开和我保持发送数据包,但在服务器不确实响应(每5秒发送我轮询消息):
12:04.40.079 ; polling ================> 3|11111 ;
12:04.45.087 ; polling ================> 3|11111 ;
12:04.50.094 ; polling ================> 3|11111 ;
12:04.55.102 ; polling ================> 3|11111 ;
12:05.00.109 ; polling ================> 3|11111 ;
通常,我发送消息并接收另一:
12:11.03.730 ; polling ================> 3|11111 ;
12:11.03.746 ; received <================ 4|11111 ;
我必须关闭并再次运行我的应用程序以再次建立通信。
如何检测我是否失去与服务器的连接?
任何人都可以帮助我吗?
在此先感谢!
我认为你想要的单词是“轮询”而不是“共享”。 –