UE4 FSocket client客户端如何检测与server服务端断开
来源:
52vr |
责任编辑:传说的落叶 |
发布时间: 2019-06-11 08:32 | 浏览量:
目前FScoket无法做到感知服务端关闭tcp链接,要做到只能通过两种其他方式:
1,使用BSD socket(建议使用non-blocking mode,因为这样方便终止接收线程);
2,客户端发送心跳包给服务端,如果没有得到回应则认为关闭。
下面方法仅适用于客户端自己关闭连接,如果是服务端关闭是没法感知的
- if (Socket->GetConnectionState() != SCS_Connected)
- {
- // Socket disconnected
- }
- else
- {
- if (Socket->HasPendingData(Size))
- {
- Socket->Recv(Data, MaxBuffer, BytesRead);
- }
- }
之前在answerhub上提了一个bug说明这个情况,但是得到的回复是让我仔细检查自己的代码,说FSocket就是基于BSD实现的, 本来想直接贴代码给他解释下的,但是感觉麻烦不想折腾。
相关文章
网友评论
全部评论:0条
推荐
热门