2011-11-23 49 views
0

我用recv函數(C++),以獲取有關網絡問題的指示(它在這種情況下返回負值)C++函數根據TCP

看這裏:http://tools.ietf.org/html/rfc1122#page-100在TCP連接失敗,我看到有R1和R2。

R1是TCP通知應用程序有問題。 R2是連接關閉時。

「在當前RTO,R1的值應該對應至少3 重傳。 R2的值應該爲至少100秒。「

RTO(重傳超時)通常從3秒開始,因此對於R1,它可能在大約10秒之後。

據我瞭解接收函數會讓我知道有關R2。你知道一種在C++應用程序中獲取R1的方法嗎?

10x。

+0

Linux或Windows? recv不是一個「C++函數」,它來自一個網絡鏈接庫,很可能是windows套接字或linux套接字。 – Offirmo

+0

[winsock - recv - 網絡連接問題]可能的重複(http://stackoverflow.com/questions/8231832/winsock-recv-network-connection-issue) – EJP

回答

0

在大多數系統中,的recv()由兩個裝置發射的信息:所述返回代碼並通過設置全局變量錯誤號

要知道每種情況下返回/設置的內容,您必須查看recv()函數的確切API。

  • R1(問題):的recv()返回 SOCKET_ERROR(Windows)或-1(Linux)上,然後你看值從WSAGetLastError(Windows)或錯誤號(Linux)有關詳細信息
  • R2(連接關閉):我不確定,API不清楚。只是嘗試一下;-)

全部DOC: