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服务器,那么您不应该在使用该端口的机器上运行其他应用程序。