Winsock連接多客戶,長時間無訊息會自動斷開?如何解決? 官戶多的話,用發訊息保持連接的方式會造成資料阻塞,實在想不出來好辦法,哪位有好的方法
uj5u.com熱心網友回復:
那就用UDP試下uj5u.com熱心網友回復:
斷了讓客戶端自動重連啊,是TCP協議的吧?斷開的時候客戶端也應該觸發了Close事件的用發訊息保持連接的方式,你可以從客戶端不定時向發服務端發訊息,這樣如果都資料阻塞的話,你應該要增加服務器了。
uj5u.com熱心網友回復:
定時檢測state狀態,close表示關閉,關閉就自動connect即可uj5u.com熱心網友回復:
服務端和客戶端都要定時發送心跳包驗證連接是否有效tcp長時間無訊息會自動斷開是路由的設定導致的 部分路由默認的設定是這樣的
uj5u.com熱心網友回復:
用服務端發令牌許可,就能限定最大連接數n。a)一個固定的埠用來登記客戶端,客戶端啟動時發一個上線訊息、然后馬上關閉連接。服務端收到后記在客戶端串列中。
b)開有限的n個埠用來接受客戶端訊息。
c)服務端開定時器,如果有空閑埠,就從客戶端串列中取下一個(按環狀回圈),分配給埠,發送許可訊息。
d)客戶端收到許可后,連接指定埠,有資料就發資料、沒資料就發在線回復,關閉連接。
e)服務端按常規處理資料或在線回復,標記埠為空閑,進入步驟c。
f)服務端如果一定時間后沒有收到回復,判斷該客戶端離線,從串列中洗掉,標記埠為空閑,進入步驟c。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/115383.html
標籤:網絡編程
