L'objectif de cet article est de comprendre comment implémenter un timeout Keep-Alive sur un serveur HTTP Boost ASIO.Serveur Boost ASIO - détection de la connexion inactive
Il y a 2 parties à cette -
- Lorsque le client a fermé la connexion
- Lorsque la connexion client est inactif
Je crois, 1) ci-dessus peut être détectée par la mise en les options TCP_KEEPIDLE, TCP_KEEPCNT et TCP_KEEPINTVL sur le descripteur de socket natif.
Quelle est la meilleure façon de détecter 2) ci-dessus?
J'ai essayé de définir SO_RCVTIMEO et SO_SNDTIMEO sur le socket natif, mais le serveur ne semble pas fermer la connexion à la fin de l'intervalle de temporisation configuré.
Les pointeurs sont très appréciés.
Merci!
Si le client ferme sa connexion bien, alors votre fin de la connexion sera marquée comme lisible (si vous utilisez l'interrogation), puis 'read' ou' recv' retournera '0'. –