UE4 FSocket client客戶端如何檢測與server服務(wù)端斷開
來源:
52vr |
責任編輯:傳說的落葉 |
發(fā)布時間: 2019-06-11 08:32 | 瀏覽量:
目前FScoket無法做到感知服務(wù)端關(guān)閉tcp鏈接,要做到只能通過兩種其他方式:
1,使用BSD socket(建議使用non-blocking mode,因為這樣方便終止接收線程);
2,客戶端發(fā)送心跳包給服務(wù)端,如果沒有得到回應(yīng)則認為關(guān)閉。
下面方法僅適用于客戶端自己關(guān)閉連接,如果是服務(wù)端關(guān)閉是沒法感知的
- if (Socket->GetConnectionState() != SCS_Connected)
- {
- // Socket disconnected
- }
- else
- {
- if (Socket->HasPendingData(Size))
- {
- Socket->Recv(Data, MaxBuffer, BytesRead);
- }
- }
之前在answerhub上提了一個bug說明這個情況,但是得到的回復是讓我仔細檢查自己的代碼,說FSocket就是基于BSD實現(xiàn)的, 本來想直接貼代碼給他解釋下的,但是感覺麻煩不想折騰。
-
分享到:
相關(guān)文章
網(wǎng)友評論
全部評論:0條
推薦
熱門