2013-04-04 138 views
0

我有一個異步套接字項目,我需要知道客戶端何時斷開連接,因此我可以將它從連接的客戶端列表中刪除。如何異步檢查客戶端是否斷開連接?

有什麼方法異步檢查這個嗎?

在我看來,我可以創建一個線程,讓我循環遍歷所有客戶端,並檢查!Client.Connected然後我將關閉套接字,但也許有另一種方法來做到這一點。

+0

什麼Socket對象?你的項目有什麼需求? - 不同的課程可能更適合您的需求,例如TCPListener等等,你到目前爲止嘗試過什麼? – Clint 2013-04-04 20:44:07

+0

TCP套接字,我需要知道客戶端何時斷開連接。到目前爲止,我嘗試過了什麼?沒有,我只是在這個問題上寫下了我的想法,我認爲這不是一個好主意,因爲可以說有1.000個客戶端,並且循環1000個客戶端可能需要時間。 – Leo 2013-04-04 20:46:17

+0

@通過1000個客戶端來訪問確實需要時間,但理想情況下,您應該以異步方式處理這些客戶端中的每一個,您可以檢查以確保在嘗試與它們交互時仍可訪問這些客戶端。 – Clint 2013-04-04 20:50:08

回答

0

下一個問題可能會爲你提供一些指導如何最好地處理你的問題,你是如何使用來治療多個客戶端中的插座一般

Asynchronous server socket multiple clients

+0

我正在使用開始讀取,接受寫入等..但如果我不與客戶端交互,並且他已斷開連接,套接字仍然在我的列表中,我不希望這樣。 – Leo 2013-04-04 21:13:35

+0

@Leo然後這可能是有用的http://stackoverflow.com/questions/722240/instantly-detect-client-disconnection-from-server-socket它會出現沒有辦法通知,但你將不得不出現以某種方式採用投票策略。 – Clint 2013-04-04 21:15:45

+0

我做了一個單線程,我循環所有的套接字,並檢查池功能,如果套接字連接或不。 – Leo 2013-04-04 22:04:30

相關問題