有没有一种有效的方法可以定期检查具有指定IP和端口的远程端点的已建立连接?

时间:2019-06-01 18:26:56

标签: asp.net tcp

我需要一种有效的方法来周期性地检测到某些远程端点(由ip和port指定)的已建立连接,而while(true)循环的thread.sleep为20ms。

每20毫秒我会调用ipGlobalProperties.GetActiveTcpConnections()并获取所有tcp连接并检查我指定的远程端点,但这会导致CPU使用率过高(和性能下降)。我在以下位置尝试使用httpClient进行ping操作:Checking if ip with port is available?,但没有结果。 有没有一种更快的方法来提高性能并减少CPU使用率?

 IPGlobalProperties ipGlobalProperties = 
 IPGlobalProperties.GetIPGlobalProperties();
 TcpConnectionInformation[] tcpConnInfoArray;

While(true)
{
 tcpConnInfoArray = ipGlobalProperties.GetActiveTcpConnections();
 foreach (TcpConnectionInformation tcpi in tcpConnInfoArray)
 {
   if (tcpi.RemoteEndPoint.Port==port && tcpi.RemoteEndPoint.IP==ip)
   {
     //some code
   }
 }
 Thread.sleep(20);
}

0 个答案:

没有答案