我正在使用 recv 函数(C++)来获取有关网络问题的指示(在这种情况下它返回负值)
看这里:https://www.rfc-editor.org/rfc/rfc1122#page-100 https://www.rfc-editor.org/rfc/rfc1122#page-100在 TCP 连接失败处,我看到有 R1 和 R2。
R1 是 TCP 通知应用程序出现问题的时间。 R2 是连接关闭时。
“R1 的值应该至少对应于 3
在当前 RTO 下的重传。 R2 的值应该
相当于至少 100 秒。”
RTO(重传超时)通常从 3 秒开始,因此对于 R1,可能会在大约 10 秒后开始。
据我了解,接收函数会让我了解 R2。您知道在 C++ 应用程序中获取 R1 的方法吗?
10x.
在大多数系统上,recv()通过两种方式传输信息:返回码并通过设置全局变量errno.
要了解每种情况下返回/设置的内容,您必须查看 recv() 函数的确切 API。
- R1(问题):recv()返回 SOCKET_ERROR (windows) 或 -1 (linux),然后查看以下值WSA获取最后一个错误(窗户)或errno(Linux) 详细信息
- R2(连接已关闭):我不确定,API 不清楚。试试吧;-)
完整文档:
- 窗户:http://msdn.microsoft.com/en-us/library/windows/desktop/ms740121%28v=vs.85%29.aspx http://msdn.microsoft.com/en-us/library/windows/desktop/ms740121%28v=vs.85%29.aspx
- linux : http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man2/recv.2.html http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man2/recv.2.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)