首页 > 解决方案 > 如果在套接字刚刚向远程端发送消息时调用 boost::asio::ip::tcp::socket::cancel() ,为什么会发生这种情况?

问题描述

根据官方文件,它说

basic_stream_socket::cancel 导致所有未完成的异步连接、发送和接收操作立即完成。

但是没有说没有发出去的数据去哪了?我必须重新发送整个消息吗?或者只是重新发送尚未发送的数据(在这种情况下,我怎么知道发送了多少字节,没有发送多少字节?)?

而且我知道这个 API 只会取消在当前线程中发起的异步操作。

标签: boosttcpboost-asio

解决方案


推荐阅读