2012-08-01 216 views
1

我想從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; 
} 
+1

你有什麼企圖?發佈一些代碼,我們可以幫助您解決它。 – Bernard 2012-08-01 02:35:55

+0

提示:使用[UdpClient.Connect()](http://msdn.microsoft.com/zh-cn/library/system.net.sockets.udpclient.connect.aspx)方法。 – Bernard 2012-08-01 02:39:35

+1

您是在主機上還是在嘗試連接的機器上檢查它? – ikh 2012-08-01 02:40:32

回答

1

通常情況下:

我用這個代碼,但它始終返回false「是本可現在呢?」沒有生產力。無論您在下一個微秒內得到的答案可能會變得不正確,因爲另一個應用程序可能會改變無效的答案。

你可以做的是讓操作系統爲偵聽特定端口上(「收購」的資源)。操作系統要麼說,這裏是一個手柄或什麼的,或者沒有,一些其他進程正在使用該特定端口。無論哪種方式,你都可以得到一個你可以明確採取行動的答案。 (特別是,如果你沒有一個答案,嘗試不同的端口)。