我有问题。当我尝试启动时,我TcpListener
不断收到错误消息,告诉我端口已在使用中。有什么方法可以让我以编程方式关闭该连接?我以前多次遇到过这个问题,使用网络服务器、游戏服务器等。
这不是我自己的程序保持端口打开的问题,而是其他程序的问题。假设我想分发我的程序,总会有一些用户拥有像 Skype 这样的程序在该端口上侦听。如何在不知道正在监听哪个程序的情况下关闭该连接,以便我可以自己使用该端口?
您可以在尝试连接之前测试端口的可用性:
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.
}