仅当之前调用 io_service_.run() 时才需要 io_service_.stop()



我使用boost asio和同步套接字实现一个tcp客户端。

我想知道我是否必须在(或之前(关闭/关闭我的套接字后调用io_service_.stop((?

当没有工作要做时,它会自行停止,一旦所有套接字等都关闭了,就应该如此(除非您使用 work 对象来保持活动状态(。仅当希望异步操作仍处于挂起状态时停止时,才调用stop

很简单:

如果您不再需要socket,并且socket仍处于打开状态:

  • 关闭socket

如果您不再需要io_service并且io_service仍在工作:

  • 停止io_service.

如果您只将io_service用于一种socket,并且不再需要该socket

  • 关闭socket
  • 然后,如果io_service仍在工作,请停止io_service

相关内容

最新更新