关闭阻塞连接

时间:2013-06-17 14:51:11

标签: c# port

我遇到了问题。当我尝试启动TcpListener时,我不断收到错误,告诉我端口已在使用中。有没有办法让我以编程方式关闭该连接?我以前曾经多次遇到过这个问题,包括网络服务器,游戏服务器等等。

这不是我自己的程序保持端口打开的问题,而是其他程序。假设我想分发我的程序,总会有一些用户在这个端口上有一个像Skype一样的程序。如何在不知道正在监听哪个程序的情况下关闭该连接,以便我可以自己使用该端口?

1 个答案:

答案 0 :(得分:0)

您可以在尝试连接之前测试端口的可用性:

 int port = 1048; //<--- This is your value
 bool isAvailable = true;

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

 foreach (TcpConnectionInformation tcpi in tcpConnInfoArray)
 {
   if (tcpi.LocalEndPoint.Port==port)
   {
     isAvailable = false;
     break;
   }
 }

if(isAvailable == true)
{
// connect.
}