問題:客戶端和服務端傳輸資料時,連接斷開,客戶端通過connect()連接服務端,為什么連接不上,服務端沒有反應?
大家遇到過這樣的問題嗎?幫忙想想可能是哪里出現了問題
uj5u.com熱心網友回復:
斷開后,要先關閉socket,然后重連。uj5u.com熱心網友回復:
如果是例外斷開,服務器端的鏈接狀態還是鏈接正常的狀態,客戶端側重新鏈接的時候,需要顯式的Colse/Free socket,具體網路行為可以用Wireshark看一下uj5u.com熱心網友回復:
服務端應有識別和管理連接狀態的能力,比如定期主動斷線、同用戶不允許重連等。如果服務端只能服務1個客戶端,則考慮排擠法,一有連接就接受新連接排擠舊連接。
uj5u.com熱心網友回復:
客戶端斷開時候,服務端應該沒有斷開,屬于半連接的狀態,應當等服務端斷開后在重連。uj5u.com熱心網友回復:
客戶端相對固定時,常連接 + 心跳包 + 客戶端識別+客戶端自動重連
這樣的解決方式資源占用少,運行可靠。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/12522.html
標籤:網絡及通訊開發
上一篇:C++中用動態創建new物件陣列可以用帶參建構式初始化嗎?
下一篇:c++ vs2019
