`
aigo
  • 浏览: 2675417 次
  • 性别: Icon_minigender_1
  • 来自: 宜昌
社区版块
存档分类
最新评论

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

阅读更多

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

 

参考:

FSocket - How to handle client disconnection

https://answers.unrealengine.com/questions/265930/fsocket-how-to-handle-client-disconnection.html

 

分享到:
评论

相关推荐

    UE4SocketExample:连接 Cat Eye Sports Sonsor Controller 的 UE4 Socket 示例

    《UE4SocketExample:连接Cat Eye Sports Sensor Controller的UE4 Socket实战详解》 UE4(Unreal Engine 4)是一款强大的游戏开发引擎,以其高度的灵活性、强大的图形处理能力和丰富的功能而闻名。在游戏开发中,...

    登陆流程.pdf

    在UE4(Unreal Engine 4)开发中,客户端与服务器的连接流程是一个复杂但核心的部分,它涉及到引擎网络架构的初始化步骤、网络对象的创建与管理以及地图加载等多个方面。在学习UE4网络连接流程的过程中,以下是一些...

    php自定义类fsocket模拟post或get请求的方法

    4. _getDataBody函数则用于读取socket连接中的数据体部分,并最终返回这些数据。 fsocket类的公共方法get_HeaderInfo用于构建一个完整的HTTP请求头部。它接收请求的相关参数,如目标主机host、请求类型(GET或POST...

    基于php socket(fsockopen)的应用实例分析

    当有客户端连接请求到来时,服务器通过socket_accept函数接受连接,建立与客户端的通信。 一旦连接建立,服务器进入一个无限循环,不断接收客户端发送的消息,并向客户端发送回复。服务器使用socket_read函数读取...

    修改后的socketsvr源码

    ioctlsocket(FSocket, FIONREAD, Longint(Result)) else begin if not FConnected then Exit; if ioctlsocket(FSocket, FIONREAD, iCount) = 0 then {##ADD} begin if iCount Count := icount; {##ADD} end...

    小蜜蜂采集器 v2.1 Build 0423

    6、支持链接替换、分页链接替换,破解某些使用JS/后台程序设置的防采功能; 7、支持采集器设置无限过滤功能; 8、支持图片采集保存到本地,自动替换文件名避免重复; 9、支持FLASH文件采集保存到本地,自动替换...

    主板的电路

    4. **集成芯片与接口电路**:如PowerPC/Pentium I/FSocket,用于处理器的安装;以及各种接口电路,如TC2/PEN#、TBST#/HCACHE#等,用于处理器与内存、I/O设备之间的通信。 #### 集成电路(IC)资料解读 集成电路在...

    Sakemail

    seems that some servers can‘t deglut the info too fast, causing problems with sockets buffers and leading to crash the client machine, I don‘t know if is a Borland bug or Microsoft bug. (thanks to ...

    deltaFSD-开源

    1. **图形化界面与链接功能** deltaFSD 提供了一个图形用户界面(GUI),用户可以通过拖拽和连接的方式来构建函数间的依赖图。这种可视化的方法使得复杂的程序结构变得易于理解和管理,减少了因为逻辑错误导致的...

    一些需要禁用的PHP危险函数(disable_functions)

    4. `system()`: 与`passthru()`类似,执行外部程序并显示输出。同样应该谨慎使用,避免恶意命令执行。 5. `chroot()`: 改变PHP进程的工作目录,如果被滥用,可能导致权限提升。 6. `scandir()`: 列出指定路径下的...

    发送POST请求的三种方式的php类.zip

    介绍一个发送POST请求的三种方式的php类,PHP发送POST请求的三种方式 分别使用curl file_get_content fsocket 来实现post提交数据。

    基于Sniffer技术的电子商务网络环境及网站侦测系统设计.doc

    通过实时监控网络流量,系统可以快速检测到异常行为,从而及时采取防范措施。 系统的主要模块包括Tcap_ip解析模块,该模块负责接收所有数据,识别数据的协议,并处理IP包。在实现IP数据识别时,系统需要自定义IP和...

    发送POST请求的三种方式的php类

    这里我们将详细探讨使用cURL、`file_get_contents`和fsocket三种方法来实现POST请求。 1. cURL(Client URL Library): cURL是PHP中最常用的方法,功能强大且灵活。cURL库提供了丰富的选项来定制HTTP请求,包括...

    mailtrap:Codeigniter 邮件陷阱 API 库

    用于 Mailtrap api 的 curl 或 fsocket 库,用于查看电子邮件内容、更新和删除。 邮件陷阱文档: ://docs.mailtrap.apiary.io/ 安装 将文件从各自的文件夹复制到相关的 codeigniter 存储库。 用法 在您的 ...

    解决tp5在nginx下修改配置访问的问题

    passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,...

Global site tag (gtag.js) - Google Analytics