gpt4 book ai didi

c++ - 如何在连接所有客户端套接字的情况下关闭boost asio服务器套接字

转载 作者:搜寻专家 更新时间:2023-10-30 23:48:19 24 4
gpt4 key购买 nike

我使用 boost:asio::ip::tcp::acceptor在我的应用程序中创建服务器套接字。我使用 close 函数关闭此接受器套接字,而不是 io_service 中的 stop 函数,但所有连接的客户端套接字仅在我的应用程序关闭时关闭。我该如何解决?谢谢!

最佳答案

执行以下任一操作:

  • 调用socket::close()在 socket 上。
  • 销毁套接字。参见 this回答有关在销毁期间如何关闭套接字的详细信息。

io_service::stop()只停止事件循环的处理。工作仍然可以发布到 io_service 中,现有工作将保留在 io_service 中。因此,应用程序必须在它希望关闭的每个套接字上调用 socket::close()。如需可移植优雅闭合,请调用 socket::shutdown()在调用 close() 之前。

可能值得花时间回顾一下 Boost.Asio 的 HTTP Server 1例子。它使用 connection_manager关闭所有连接。

关于c++ - 如何在连接所有客户端套接字的情况下关闭boost asio服务器套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15027268/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com