我有一個應用程序,我從我們的內部測試設備監聽端口7001 UDP廣播,最近我更新了另一個需要做同樣事情的應用程序。這兩個應用程序必須能夠在同一臺計算機上共存。如何檢測在Windows中偵聽某個tcp/ip端口的程序?
當前,當我最近更新的應用程序嘗試綁定到端口以偵聽UDP廣播並且失敗時,它僅報告端口不可用並且表明繼承的應用程序可能正在運行。我如何讓我的應用程序檢測哪個應用程序實際在該端口上偵聽?我做了Google搜索,甚至搜索了這個網站,但到目前爲止,除了在命令行中使用任務管理器,TCPView或netstat之外,我一直無法找到任何東西。
我更喜歡使用Windows API或Windows系統COM組件的技術,因爲這兩個應用程序都是用VB6編寫的。 (我知道,我知道,但是我必須維護這些應用程序,因爲它們是關鍵任務。)但是,如果我在新的開發工作中需要它,.NET解決方案也會很有用。
GetTcpTable2可以爲您提供進程ID。類似的問題在這裏[鏈接](http://stackoverflow.com/questions/13295277/check-on-avaiable-port-using-wmi-win32-class) – user2773289
不知道你是否可以使用這個或不是,但MSDN上面的一些示例代碼條目位於http://msdn.microsoft.com/en-us/library/windows/desktop/bb408406(v=vs.85).aspx –
您還可以通過WMI獲取此信息。非常方便的東西。 – EJP