0

ネットワークの問題を示すためにrecv関数(C ++)を使用しています(この場合は負の値を返します)

ここを見てください:https ://www.rfc-editor.org/rfc/rfc1122#page-100 TCP接続障害で、R1とR2があることがわかります。

R1は、TCPがアプリケーションに問題があることを通知するときです。R2は、接続が閉じられたときです。

「R1の値は、現在のRTOで少なくとも3回の再送信に対応する必要があります。R2の値は少なくとも100秒に対応する必要があります。」</p>

RTO(再送信タイムアウト)は通常3秒で開始するため、R1の場合は約10秒後になる可能性があります。

私が理解している限り、受信機能はR2について教えてくれます。C ++アプリケーションでR1を取得する方法を知っていますか?

10倍。

4

1 に答える 1

0

ほとんどのシステムでは、recv()は、戻りコードとグローバル変数errnoの設定という2つの方法で情報を送信します。

それぞれの場合に何が返されるか/設定されるかを知るには、recv()関数の正確なAPIを調べる必要があります。

  • R1(問題):recv()はSOCKET_ERROR(windows)または-1(linux)を返します。詳細については、 WSAGetLastError(windows)またはerrno(linux)の値を確認してください。
  • R2(接続が閉じられています):わかりません。APIが不明です。試してみてください;-)

完全なドキュメント:

于 2011-11-23T16:33:48.410 に答える