0

我正在使用 recv 函数(C++)来获取有关网络问题的指示(在这种情况下它返回负值)

看这里:https ://www.rfc-editor.org/rfc/rfc1122#page-100在 TCP Connection Failures,我看到有 R1 和 R2。

R1 是 TCP 通知应用程序存在问题的时间。R2 是连接关闭的时候。

“在当前 RTO,R1 的值应该对应于至少 3 次重传。R2 的值应该至少对应 100 秒。”</p>

RTO(重新传输超时)通常从 3 秒开始,因此对于 R1,它可能在大约 10 秒之后。

据我了解,接收功能会让我了解 R2。你知道在 C++ 应用程序中获取 R1 的方法吗?

10 倍。

4

1 回答 1

0

在大多数系统上,recv()通过两种方式传输信息:返回码和设置全局变量errno

要了解每种情况下返回/设置的内容,您必须查看 recv() 函数的确切 API。

  • R1(问题):recv()返回 SOCKET_ERROR (windows) 或 -1 (linux),然后查看WSAGetLastError (windows) 或errno (linux) 中的值以了解详细信息
  • R2(连接关闭):我不确定,API 不清楚。试试看;-)

完整文档:

于 2011-11-23T16:33:48.410 回答