-3

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

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

4

1 回答 1

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.
}
于 2013-06-17T15:01:49.513 回答