我正在尝试使用阻塞套接字的示例: http://www.boost.org/doc/libs/1_52_0/doc/html/boost_asio/example/timeouts/blocking_tcp_client.cpp
TEST
我想测试它的行为,所以我试图拔下我的以太网线并继续每秒写一次。
行为
write 函数继续发送消息而不会捕获任何错误大约20秒,然后最终捕获错误(在tcp超时?)。我将自己的截止日期定义为1。
问题
预计在大约1秒后,在第一次调用 write 函数时会出现错误。为什么我在第一次通话时没有发现错误,而是在20秒之后?还有办法吗?
答案 0 :(得分:1)
这是TCP的预期,你无能为力。 TCP不保证交付,它会尽最大努力确保交付。
如果您希望保证交付,我们必须在申请代码中确认您的提交。