C# 如何检查UDP端口是否打开或关闭

C# 如何检查UDP端口是否打开或关闭,c#,C#,我想将UDP端口从5000迭代到50xx 如何检查特定端口是否已打开或可自由使用 我使用此代码,但它总是返回false: public bool PortIsUsed(int myport) { bool alreadyinuse = (from p in System.Net.NetworkInformation.IPGlobalProperties.GetIPGlobalProperties().GetActiveUdpListeners() where p.Port == mypor

我想将UDP端口从5000迭代到50xx

如何检查特定端口是否已打开或可自由使用

我使用此代码,但它总是返回false:

public bool PortIsUsed(int myport)
{
   bool alreadyinuse = (from p in System.Net.NetworkInformation.IPGlobalProperties.GetIPGlobalProperties().GetActiveUdpListeners() where p.Port == myport select p).Count() == 1;
   return alreadyinuse;
}

通常,在请求共享资源(如UDP端口号)时,询问“现在是否可用?”是无效的。无论您得到的答案是什么,都可能在接下来的几微秒内变得不正确,因为另一个应用程序可能会更改某些使答案无效的内容


您可以要求操作系统监听特定端口(“获取”资源)。操作系统要么说是,这里有一个句柄,要么说不是,其他进程正在使用这个特定的端口。无论哪种方式,你都会得到一个你可以明确行动的答案。(特别是,如果您的答案为“否”,请尝试其他端口。)

通常,在请求共享资源(如UDP端口号)时,询问“现在是否可用?”是无效的。无论您得到的答案是什么,都可能在接下来的几微秒内变得不正确,因为另一个应用程序可能会更改某些使答案无效的内容


您可以要求操作系统监听特定端口(“获取”资源)。操作系统要么说是,这里有一个句柄,要么说不是,其他进程正在使用这个特定的端口。无论哪种方式,你都会得到一个你可以明确行动的答案。(特别是,如果答案为“否”,请尝试其他端口。)

您尝试了什么?发布一些代码,我们可以帮助您修复。提示:使用该方法。您是在主机上还是在您尝试连接的机器上检查它?@ikh在主机上尝试了什么?发布一些代码,我们可以帮助您修复。提示:使用该方法。您是在主机上还是在您尝试连接的机器上检查它?@ikh在主机上