我使用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
。