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