C# 关闭阻塞连接

C# 关闭阻塞连接,c#,port,C#,Port,我有个问题。当我尝试启动我的TcpListener时,我不断收到一个错误,告诉我端口已经在使用中。我有没有办法通过编程关闭该连接?我以前曾多次遇到过这个问题,比如web服务器、游戏服务器等 这不是我自己的程序保持端口打开的问题,而是其他程序的问题。假设我想发布我的程序,总会有一些用户在该端口上使用Skype之类的程序。如何在不知道哪个程序正在监听的情况下关闭该连接,以便我自己使用该端口?在尝试连接之前,您可以测试端口的可用性: int port = 1048; //<--- This i

我有个问题。当我尝试启动我的
TcpListener
时,我不断收到一个错误,告诉我端口已经在使用中。我有没有办法通过编程关闭该连接?我以前曾多次遇到过这个问题,比如web服务器、游戏服务器等


这不是我自己的程序保持端口打开的问题,而是其他程序的问题。假设我想发布我的程序,总会有一些用户在该端口上使用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.
}

int端口=1048//如果另一个应用程序正在使用您计划使用的端口,您应该使用另一个端口,而不是仅仅因为您想使用该端口就试图终止它们的连接。明天:我知道如何检查打开的端口,但在我的情况下,我不能使用80以外的任何其他端口,所以我需要找到一种方法来终止锁定端口的进程80@user2073973为什么不能使用80以外的端口?除非您正在创建自己的Web服务器,否则您真的不应该使用端口80;按照惯例,它专门用于提供HTTP内容。如果您正在创建自己的Web服务器,那么您不应该在使用该端口的机器上运行其他应用程序。