我正在開發一個使用c#的Windows服務中使用tcp監聽器的tcp服務器應用程序。如何知道tcp服務器是否處於監聽狀態
開始我的服務後,它工作正常,並接受新的客戶端。經過一段時間,當新客戶端嘗試連接到服務器時,它會給出以下例外:
連接失敗,服務器是否正在運行?因爲目標機器主動拒絕它,所以不能連接 。
此時服務僅處於運行狀態。
如何驗證tcp服務器是否處於偵聽狀態?
我正在開發一個使用c#的Windows服務中使用tcp監聽器的tcp服務器應用程序。如何知道tcp服務器是否處於監聽狀態
開始我的服務後,它工作正常,並接受新的客戶端。經過一段時間,當新客戶端嘗試連接到服務器時,它會給出以下例外:
連接失敗,服務器是否正在運行?因爲目標機器主動拒絕它,所以不能連接 。
此時服務僅處於運行狀態。
如何驗證tcp服務器是否處於偵聽狀態?
不知道你的意思編程或沒有,但對於後者,你可以嘗試遠程登錄:Telnet主機端口
telnet yahoo.com 80
telnet localhost 3306
等
這將有同樣的問題,應用程序正在。它無法區分'不聽'和'積壓隊列滿',這將導致Windows服務器拒絕連接。 – EJP
如果您的服務器仍在運行並且尚未關閉偵聽套接字,它仍處於偵聽狀態。但是,如果平臺是Windows並且服務器的積壓隊列已滿,則Windows將拒絕進一步的連接。這意味着你的服務器很慢接受新的連接。
+1。如果服務器沒有崩潰 - 這可能是原因。 –
@Sergey我不知道有任何其他*可能的原因... – EJP
你能粘貼代碼嗎? – AurA