Lorsqu'un client initie une déconnexion depuis le serveur, il y a un échange entre le client et le serveur pour informer de l'état de la déconnexion. Lorsque le processus est terminé, la connexion socket du client passe à l'état TIME_WAIT pendant un temps variable. C'est un comportement normal, dans les systèmes d'exploitation Windows, ce temps est par défaut d'environ 4 minutes.
Tu peux réduire ou éliminer ce comportement, à faire avec précaution, via les alternatives suivantes.
Regedit
Tu peux réduire la valeur TIME_WAIT via Regedit Windows
1. Ouvre Regedit et accède à HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\TCPIP\Parameters registry subkeys.
2. Create a nouveau REG_DWORD value named TcpTimedWaitDelay
3. Set la valeur in Seconds. Exemple : si tu définir un value de 5, means que TIME_WAIT va waits as max as 5 seconds.
4. Save et restart le system.
LINGER
Another option to avoid TIME_WAIT state, est utiliser le socket option SO_LINGER, si enabled, au lieu de closing la connexion gracefully, le client resets la connexion donc le TIME_WAIT state est avoided.
Tu peux enable ce option utilisant LingerState property, par défaut a un value de -1. Si tu définir un value de zero, la connexion sera reset lorsque disconnecting depuis socket without Timeout.
This options est probablement le less recommended et seulement use as a last option.
