我使用boost:asio::ip::tcp::acceptor在我的应用程序中创建服务器套接字。我使用函数关闭此接受器套接字close
,而不是stop
函数,io_service
但所有连接的客户端套接字仅在我的应用程序关闭时关闭。我该如何解决?谢谢!
问问题
8589 次
1 回答
9
执行以下任一操作:
socket::close()
在套接字上调用。- 销毁套接字。有关在销毁期间如何关闭套接字的详细信息,请参阅此答案。
io_service::stop()
仅停止事件循环的处理。作品仍可发布到 中io_service
,现有作品将保留在 中io_service
。因此,应用程序必须调用socket::close()
它希望关闭的每个套接字。对于可移植的优雅闭包,在调用socket::shutdown()
之前调用close()
。
花点时间查看 Boost.Asio 的HTTP Server 1示例可能是值得的。它使用 aconnection_manager
来关闭所有连接。
于 2013-02-22T15:41:06.563 回答