Boost asio通知服务器断开连接
boost asio notify server of disconnect
我想知道如果客户端应用程序关闭,是否有任何方法通知服务器。通常,如果我Ctrl+C
我的客户端终端一个EOF
信号被发送到服务器端。服务器端async_read
函数有一个句柄,其中包含boost::system::error_code ec
参数。当服务器端接收到EOF-signal
时调用句柄,我可以愉快地处理并告诉服务器再次开始侦听。
然而,如果我尝试使用socket.shutdown()
和socket.close()
干净地关闭我的客户端应用程序,什么也不会发生,服务器端套接字仍然打开。
我想知道,是否有一种方式以某种方式发送错误信号到服务器端套接字,以便我可以使用错误代码处理它?
注释中描述的方法涵盖了99%的情况。当客户端机器(不是优雅地)关闭或网络问题时,它无法工作。
为了获得可靠的断开连接的客户端通知,您需要实现"ping"功能:定期发送ping数据包并检查您是否收到了pong数据包
相关文章:
- 升压信号2将插槽传递到成员功能以断开连接
- 视频在唤醒其他线程时输入设备断开连接
- SNMP 代理在单元测试期间断开连接
- 断开连接后重新连接boost beast(asio)websocket和http连接时出错
- C++套接字客户端断开连接
- 如何在 Windows 进程回调中断开连接时获取设备信息(硬件 ID)
- 如何在 Grpc 中使用双向流时检测(物理)断开连接
- 对等方断开连接后未释放 SSL 内存
- SIGPIPE C++确定哪个 TCP 套接字已断开连接
- C++中断开连接的记录集
- 断开连接时Arduino系列读取
- Poco::Net HTTPServer:如何检测断开连接的客户端?
- C++执行会导致监视器断开连接
- QJSONRPC 中的客户端连接/断开连接事件
- 如何检测用户何时与网络断开连接
- AJAX与C HTTP服务器断开连接
- 如何在 Thrift 中检测服务器断开连接
- 如何检测程序运行时 Kinect 何时断开连接/拔出
- Arduino 以太网扩展板无法检测到断开连接
- 加速和 Windows 套接字 - 正确处理 TCP 客户端断开连接方案