提升异步 TCP 客户端在没有物理连接的情况下写入时不返回错误
boost async tcp client doesn't return error when writing without physical connection
我正在尝试使用这个阻塞套接字的示例: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不保证交付,它会尽最大努力确保交付。
如果你想要真正保证交付,你必须在应用程序代码中确认你的提交。
相关文章:
- 特定情况下的分段错误
- MSVC 在不知道类型的情况下评估上下文(和错误)
- 如何在没有打印语句的情况下报告用户输入错误
- 在最坏的情况下试验快速排序.它运行良好,但在最坏的情况下发生未知错误.我想
- 如何在不设置 ulimit -n 的情况下解决套接字程序打开太多文件的错误
- 调整向量大小并检索值,这是否正确或在任何情况下都可能导致段错误?
- 如果 return 语句在带括号的循环中,错误可能会到达非 void 函数的末尾,但不会显示在没有括号的循环的情况下
- 我需要在不使用前向声明的情况下相互包含两个头文件,导致"incomplete type"错误
- 在存在错误代码的情况下输出参数与 NRVO
- 对象无法访问其私人数据.错误:在这种情况下私有
- 在这种情况下如何解决?语法错误:在"* "node" ?
- 如何编写一个通用函数,该通用函数在没有任何条件和条件的情况下工作(无论是真实和错误)
- 错误:在 DLSYSM 的情况下,从“void*”到“void (*)()”的转换无效
- 我的调试器说我有一个隔离错误错误,但无法告诉我在哪里,在非常特殊的情况下发生
- 为什么在这种情况下编制动态库错误
- 即使我传递了无效的类型参数,我为什么还能在没有错误的情况下编译此代码
- 呼叫send()关闭申请的情况下没有错误
- 如何在没有错误的情况下展示特殊的中文,韩语,日本角色
- C 如何在没有错误的情况下调用void函数
- 在不包括任何内容的情况下获得错误声音