2013-05-02 95 views
0

試圖連接出現錯誤:無法連接到一個端口,但netstat顯示的是什麼端口監聽

"No connection could be made because the target machine actively refused it."

但netstat顯示:

TCP 0.0.0.0:MY_PORT   MY_PC:0  LISTENING 

只有我能想到的問題是什麼綁定到端口的應用程序正在逐步調試,因此暫停。我如何解決它。

基本上我需要知道如果有人已經綁定到一個端口。 (我不能用SO_EXCLUSIVEADDRUSE


我想我無法連接,因爲應用的哪些方面使用端口處於調試暫停模式,所以,我第一次那麼連接它沒有「明確的聯繫」。

+0

而且沒有防火牆可能會阻礙? – 2013-05-02 14:09:07

+0

@Joachim Pileborg,很好的問題,但我認爲不是,這兩個應用程序在同一臺PC上,而且我在這臺PC上沒有防火牆 – Yola 2013-05-02 14:15:00

+0

順便說一下,如果其他人已經在使用該端口,那麼您將無法使用綁定到它。 – 2013-05-02 14:17:59

回答

1

如果你只是想檢查一個給定的端口是否正在使用,你可以bind()來檢查它是否失敗。如果您不想創建套接字並將其綁定,則可以循環訪問由GetTcpTable(),GetTcpTable2(),GetTcp6Table(),GetTcp6Table2(),GetUdpTable()GetUdp6Table()函數返回的數組。 Table2()不僅報告正在使用的IP和端口,還報告擁有這些IP和端口的進程ID(然後您可以從中訪問其他信息,例如文件名)。這些是netstat在內部用於獲取其信息的相同功能。

+0

謝謝,我發現它是wnetstat來源,很好的方法 – Yola 2013-05-03 07:26:36