Wie die keep alive-Intervall für winsock
Bin ich mit winsock und TCP.
Ich habe den KeepAlive
option wie folgt
int aliveToggle = 1;
setsockopt(mySocket,SOL_SOCKET,SO_KEEPALIVE,(char*)&aliveToggle, sizeof(aliveToggle));
Aber, wie Sie angeben, die Keep aLive Zeit und Intervall?
Bin ich mit VC++ läuft auf windows 7.
- Unter Linux gibt es TCP_KEEPIDLE, TCP_KEEPCNT, und TCP_KEEPINTVL Optionen, mit denen Sie Steuern die keepalive-Verhalten... aber AFAIK unter Windows sind Sie ziemlich viel Pech. Hoffentlich Irre ich mich und jemand nach einer Methode, die hier, wenn es eines gibt, dass ich verpasst, ich würde gerne auch wissen 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zwei pro-interface-registry-Einstellungen unter dem Schlüssel \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Tcpip\Parameter Steuern das Verhalten des TCP/IP keep-alives:
Der KeepAliveTime-Wert gibt an, wie lange die TCP-Verbindung inaktiv, kein Verkehr, vor TCP sendet keep-alive-Pakets. Der Standardwert ist während 7.200.000 Millisekunden (ms) oder 2 Stunden.
Den KeepAliveInterval Wert gibt an, wie viele Millisekunden auf eine Antwort zu warten nach dem senden eines keep-alive vor der Wiederholung des keep-alive. Wenn keine Antwort empfangen wird, die TCP/IP-stack weiter senden von keep-alives in diesem Intervall, bis eine Antwort empfangen wird oder bis der Stapel erreicht das packet retry limit angegeben, der Wert für TCPMaxDataRetransmissions registry-Schlüssel. KeepAliveInterval standardmäßig auf 1 Sekunde (1000 .
TCP-keep-alives deaktiviert sind, aber der Windows-Sockets-Anwendungen verwenden können, die setsockopt-Funktion, um Ihnen zu ermöglichen, die auf einer pro-Verbindung-basis.
Hinweis: Wenn der Entwickler wählt für die Verwendung von TCP-keep-alive-Meldungen, die auf einen bestimmten Zusammenhang, den Zeitpunkt dieser Meldungen wird angegeben, indem der registry-Werte beschrieben vorgehe. Es ist nicht möglich, verschiedene timing auf verschiedenen keep-alive-requests.
Aus c/c++ Sie sollten in der Lage sein zu verwenden SIO_KEEPALIVE_VALS zur Steuerung des timeouts. Sie nicht verwenden können, setsockopt, aber Sie sollten in der Lage sein zu verwenden WSAIoctl. Sehen http://msdn.microsoft.com/en-us/library/windows/desktop/dd877220%28v=vs.85%29.aspx
Hier ist ein Beispiel http://read.pudn.com/downloads79/ebook/301417/Chapter09/SIO_KEEPALIVE_VALS/alive.c__.htm