提升异步 TCP 客户端在没有物理连接的情况下写入时不返回错误

boost async tcp client doesn't return error when writing without physical connection

本文关键字:情况下 错误 返回 连接 TCP 异步 客户端      更新时间:2023-10-16

我正在尝试使用这个阻塞套接字的示例:http://www.boost.org/doc/libs/1_52_0/doc/html/boost_asio/example/timeouts/blocking_tcp_client.cpp

测试

我想测试它的行为,所以我试图拔掉我的以太网电缆并每秒继续写入。

行为

写入函数继续发送消息,大约 20 秒没有捕获任何错误,然后最终捕获错误(在 tcp 超时时?我将自己的截止日期定义为 1s。

问题

预计我会在大约 1 秒后第一次调用写入函数时出现错误。为什么我在第一次调用时没有发现错误,而不是 20 秒后?有没有办法做到这一点?

这是

TCP所期望的,你对此无能为力。TCP不保证交付,它会尽最大努力确保交付。

如果你想要真正保证交付,你必须在应用程序代码中确认你的提交。

相关文章: