2011-12-08 31 views
1

私はC++でソケットとして使用しています(Windowsの場合はWinsock2、Linuxの場合はsocket.h) TCP再送信をデフォルトよりも少なくまたはより大きく設定する方法はありますか? 私は意味:ソケットコンフィギュレーションでのTCP再送信

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 
TCPMaxDataRetransmissions 

そこに私はすべてのアプリケーションのためにそれを設定することができますが、私は、デフォルト以外のことを自分のアプリケーションにのみソケットを設定したい:私は、レジストリキーが存在しているはず。ここで

答えて

1

私はこれを試していませんが、設定できるTCP_MAXRTオプションがあることを知っています。インクルードディレクトリで簡単に検索したところ、Windowsのws2ipdef.hに定義されています。

int maxrt = 10; 
setsockopt(sock, IPPROTO_TCP, TCP_MAXRT, &maxrt, sizeof(maxrt)); 
+0

このオプションのどこにMicrosoftのドキュメントがありますか? – gln

+0

申し訳ありません。 – lloydm

-1

http://msdn.microsoft.com/en-us/library/windows/desktop/ee470551%28v=vs.85%29.aspx

それは発言のセクションで、異なるバージョンのWindows上で動作するどのように良い説明を持っています。

+0

これは私の質問にどのように回答していますか?それは再送ではない生き続ける! – gln

+0

TCPMaxDataRetransmissionsは、キープアライブの再試行回数です。 Windows Vista以降では、キープアライブプローブ(データ再送信)の数は10に設定されており、変更することはできません。 Windows Server 2003、Windows XP、およびWindows 2000では、キープアライブプローブの数のデフォルト設定は5です。キープアライブプローブの数は、TcpMaxDataRetransmissionsおよびPPTPTcpMaxDataRetransmissionsレジストリ設定によって制御できます。 – puikos

関連する問題