标签: c++ boost boost-asio synchronous
我编写了一个使用TCP连接通过套接字发送信息的应用程序。由于多种原因,我正在使用阻塞调用,但我注意到boost::asio::write()方法在其他机器(接收数据的机器)断开连接时不会阻塞。它也不会引发错误。
boost::asio::write()
这是预期的行为吗?
答案 0 :(得分:3)
当缓冲区中没有空间时,套接字写将阻塞,否则只要数据在缓冲区中发送就会返回,而不是直到数据传递给接收方。此外,网络堆栈可能无法检测到另一侧立即断开连接,因此您可能会或可能不会在写入时看到错误代码。所以是的,这是预期的行为。