[英]How to close boost asio server socket with all client sockets connected
我使用boost:asio :: ip :: tcp :: acceptor在我的应用程序中创建服务器套接字。 我使用close
函数关闭此acceptor套接字,而不是io_service
stop
函数,但只有当我的应用程序关闭时,所有连接的客户端套接字才会关闭。 我该如何解决这个问题? 谢谢!
执行以下任一操作:
socket::close()
。 io_service::stop()
仅停止处理事件循环。 工作仍然可以发布到io_service
,现有工作将保留在io_service
。 因此,应用程序必须在它希望关闭的每个套接字上调用socket::close()
。 对于可移植的正常闭包,在调用close()
之前调用socket::shutdown()
close()
。
可能值得花些时间来查看Boost.Asio的HTTP Server 1示例。 它使用connection_manager
来关闭所有连接。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.