2012-11-21 23 views
0

我在同一個(Windows)計算機上運行一個簡單的客戶端/服務器。服務器偵聽端口9878.以下是由Process Explorer捕獲的服務器exe的連接狀態:這種類型的套接字連接狀態是否有名稱?

Protocol Localhost   Remote   Status 
TCP   localhost:9878 localhost:0  LISTENING 
TCP   localhost:9878 localhost:55555 ESTABLISHED 
TCP   localhost:55555 localhost:9878  ESTABLISHED 

正如您所看到的情況出現了問題。我觀察到的問題是,數據無限地從服務器發送到客戶端。在這裏看到服務器連接2個端口到同一臺機器的情況嗎?另外,是否有這種可能發生的典型方式?對我來說,只要第一次連接後客戶端斷開,就會發生這種情況。

+0

不,我看不出有什麼不對。我可以看到LISTENING套接字,並且可以看到該端口和端口55555之間的連接的兩端。我們應該看到什麼問題? – EJP

+0

「斷線」是什麼意思?你是否妥善處理插座?你能嘗試用TELNET連接到服務器進程並斷開連接嗎? – LSerni

+0

問題在於,這是來自服務器進程而不是整個系統的網絡狀態。所以2個已建立的連接不應該在那裏(我假設)是串聯的,對吧? – glutz

回答

1

該列表沒有任何問題。這就是本地客戶端連接到本地服務器時應該看到的一組連接。你在這種情況下有三個插座:

  1. 服務器 - 監聽套接字
  2. 服務器 - 連接套接字客戶
  3. 客戶端 - 連接套接字服務器

如果你有某種問題可能是你的代碼中的一個錯誤。

+0

我想在關閉客戶後,我應該期待看到這些關係消失,對吧?因爲每次關閉客戶端時,我都會看到更多的連接創建,因此上面的列表會變得更長。 – glutz

+0

是的,他們應該在關閉客戶後乾淨地消失。但是,在關閉客戶端後,您希望在TIME_WAIT中看到一些連接。 – shf301

+0

我會在列表中調用第二個套接字「* Accepted Socket *」和第三個「* Connected Socket *」。 – alk

相關問題