如何检查是否UDP端口是打开还是关闭
问题描述:
我想从5000迭代UDP端口50XX如何检查是否UDP端口是打开还是关闭
我如何检查是否一个特定的端口已打开或免费使用?要求一个共享资源,如UDP端口号时,要求
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;
}
答
通常情况下:
我用这个代码,但它始终返回false“是本可现在呢?”没有生产力。无论您在下一个微秒内得到的答案可能会变得不正确,因为另一个应用程序可能会改变无效的答案。
你可以做的是让操作系统为侦听特定端口上(“收购”的资源)。操作系统要么说是,这里是一个手柄或什么的,或者没有,一些其他进程正在使用该特定端口。无论哪种方式,你都可以得到一个你可以明确采取行动的答案。 (特别是,如果你没有为一个答案,尝试不同的端口)。
你有什么企图?发布一些代码,我们可以帮助您解决它。 – Bernard 2012-08-01 02:35:55
提示:使用[UdpClient.Connect()](http://msdn.microsoft.com/zh-cn/library/system.net.sockets.udpclient.connect.aspx)方法。 – Bernard 2012-08-01 02:39:35
您是在主机上还是在尝试连接的机器上检查它? – ikh 2012-08-01 02:40:32