0

我编写了一个应用程序,它使用 TCP 连接通过套接字发送信息。出于多种原因,我正在使用阻塞调用,但我注意到boost::asio::write()当另一台机器(接收数据的机器)断开连接时,该方法不会阻塞。它也不会引发错误。

这是预期的行为吗?

4

1 回答 1

4

当缓冲区中没有空间时,套接字写入将阻塞,否则一旦缓冲区中有数据要发送,它将立即返回,直到数据传递给接收者。此外,网络堆栈可能无法检测到另一端立即断开连接,因此您可能会或可能不会在写入时看到错误代码。所以是的,这是预期的行为。

于 2013-11-13T16:04:26.463 回答