UE4 FSocket client客户端如何检测与server服务端断开 - 纳金网
联系我们

给我们留言

联系我们

地址:福建省晋江市青阳街道洪山路国际工业设计园纳金网

邮箱:info@narkii.com

电话:0595-82682267

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

当前位置:主页 > 3D教程 > 图文教程

UE4 FSocket client客户端如何检测与server服务端断开

来源: 52vr | 责任编辑:传说的落叶 | 发布时间: 2019-06-11 08:32 | 浏览量:

 

目前FScoket无法做到感知服务端关闭tcp链接,要做到只能通过两种其他方式:

1,使用BSD socket(建议使用non-blocking mode,因为这样方便终止接收线程);

2,客户端发送心跳包给服务端,如果没有得到回应则认为关闭。

 

下面方法仅适用于客户端自己关闭连接,如果是服务端关闭是没法感知的

  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实现的, 本来想直接贴代码给他解释下的,但是感觉麻烦不想折腾。


相关文章
网友评论

您需要登录后才可以发帖 登录 | 立即注册

关闭

全部评论:0条

推荐
热门