目前我正在开发一个项目,我使用不同的C#套接字实例使用4个TCP / IP连接。但我的项目要求是持续监控这些连接是否开启。我使用了poll方法,但它只显示连接的最后状态,但如果以太网电缆应该被删除,那么它仍然显示最后状态。我需要检查所有时间正确连接是否是他们的所有情况。请帮我解决这个问题
我的民意调查方法功能
public static bool IsSocketConnected(Socket s)
{
try
{
if (s != null)
return !((s.Poll(1000, SelectMode.SelectRead) && (s.Available == 0)) || !s.Connected);
else
return false;
}
catch(Exception es)
{
return false;
}
}
答案 0 :(得分:0)
连接仅存在于TCP级别 - 网络接口只发送消息。 TCP非常智能,可以确保每条消息按照发送的顺序到达。
但是,如果没有发送消息(例如定期保持活动请求),它无法检测到另一方是否已无法访问。