Un cliente mi ha chiesto di attivare il keepAlive su un socket in un applicativo c#, così su due piedi ho detto: Facile ! Basta usare:
1: private TcpListener listener;
2: listener.Server.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.KeepAlive, 1);//per abilitare il tcpkeepalive sul socket
Però il settaggio sopra serve solo per attivare il keepAlive su un socket utilizzando i valori di default da settare nel registry:
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters]
KeepAliveTime = millisecondi
Specifica l’idle time in millisecondi prima che il TCP cominci ad inviare keepalive. Default 2 ore (7.200.000)
KeepAliveInterval = uint
Specifica l’intervallo in secondi tra le ritrasmissioni dei keepalive dopo che...