场景

            对接萤石NVR,采用Onvif协议进行对接,通信完成之后,会收到boost::asio::error::eof 的异常错误,是否是正常关闭?还是抛出了异常?

boost::asio::error::operation_aborted    (995)    正在async_receive()异步任务等待时,本端关闭套接字

备注:boost库asio异步接收出错:error code995:由于线程退出或应用程序请求,已中止I/O操作。

boost::asio::error::connection_reset    (10054)    正在async_receive()异步任务等待时,远端的TCP协议层发送RESET终止链接,强制关闭套接字。常常发生于远端进程强制关闭时,操作系统释放套接字资源。
boost::asio::error::eof    (2)    正在async_receive()异步任务等待时,远端关闭套接字,这里跟10054发生的情况似乎一样,但是实际上应该是有区别的,具体神马区别,由回复中jack的说法,这个是远端正常关闭套接字。

当socket读写完成调用回调函数时候一定要检查 是不是有EOF错误,如果有那么好了,另一方已经断开连接了别无选择,你也断开把。