基于Asio的UE5 TCP客户端重连后无法接收消息问题
UE5中Asio TCP客户端重连后无法接收消息问题
- 开发环境:Unreal Engine 5(UE5),使用独立Asio库开发C++ TCP客户端
- 初始版本表现:采用同步连接+异步接收消息的逻辑,当服务端已启动时可正常工作
- 需求目标:实现两个核心逻辑——初始连接时最多重试3次,每次间隔10秒;连接断开后无限重连
- 修改后异常情况:修改
Connect和Disconnect函数,通过异步延迟工具实现重连逻辑后,客户端能够成功建立连接并发送消息,但完全无法接收消息 - 调试发现:
io_context处于停止状态,待处理任务数为0,尝试重启io_context或手动添加任务都无法恢复消息接收功能;仅初始同步连接(服务端已提前启动)的场景仍正常,重连流程或初始异步连接的场景均出现该问题,且不同的异步延迟调用方式不影响异常结果 - 个人背景:刚接触Asio,近十年主要使用C#,难以定位问题根源
内容的提问来源于stack exchange,提问作者Piflik
相关产品推荐
相关产品推荐

