? 雪臀肉枪玩遍武林美妇,97青春娱乐网老网站
聯(lián)系我們

給我們留言

聯(lián)系我們

地址:福建省晉江市青陽街道洪山路國際工業(yè)設(shè)計園納金網(wǎng)

郵箱:info@narkii.com

電話:0595-82682267

(周一到周五, 周六周日休息)

當前位置:主頁 > 3D教程 > 圖文教程

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)閉是沒法感知的

  1. if (Socket->GetConnectionState() != SCS_Connected)  
  2. {  
  3.     // Socket disconnected   
  4. }  
  5. else  
  6. {  
  7.     if (Socket->HasPendingData(Size))  
  8.     {  
  9.         Socket->Recv(Data, MaxBuffer, BytesRead);  
  10.     }     
  11. }  

 

之前在answerhub上提了一個bug說明這個情況,但是得到的回復是讓我仔細檢查自己的代碼,說FSocket就是基于BSD實現(xiàn)的, 本來想直接貼代碼給他解釋下的,但是感覺麻煩不想折騰。


相關(guān)文章
網(wǎng)友評論

您需要登錄后才可以發(fā)帖 登錄 | 立即注冊

關(guān)閉

全部評論:0條

推薦
熱門