NoS*_*tAl 7 c++ raii boost-asio
我尝试查看源代码,但我无法浏览大量的模板代码.基本上:这就是文档所说的(for close()):
Run Code Online (Sandbox Code Playgroud)Remarks For portable behaviour with respect to graceful closure of a connected socket, call shutdown() before closing the socket.
我可以手动完成,但如果可能,依靠RAII会很好.
所以,如果我有插座走出去的范围,我需要打电话shutdown()和close()上它,或者它会自动完成?
人们可以依靠套接字使用 RAII 执行适当的清理。
当 IO 对象(例如套接字)被销毁时,其析构函数将调用IO 对象的服务,并传入IO 对象的服务将destroy()在其上操作的实例。implementation_type要求SocketService声明destroy()将隐式取消异步操作,就像通过调用close()服务上的 一样,该服务具有返回 false 的后置条件is_open()。此外,该服务close()将导致未完成的异步操作尽快完成。已取消操作的处理程序将传递错误代码boost::asio::error::operation_aborted,并安排在io_service. io_service如果这些处理程序是从处理事件循环的线程调用的,或者被io_service销毁的,则这些处理程序将从 中删除。
| 归档时间: |
|
| 查看次数: |
1800 次 |
| 最近记录: |