我有一个连接到服务器套接字的应用程序客户端,我有一个功能可以检测何时发生断开连接:
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 ;
我必须关闭并再次运行我的应用程序才能再次建立通信。
如何检测我是否失去与服务器的连接?
谁能帮我?
提前致谢!