Disons que je fais tourner un serveur simple et que j'ai accept()
ed une connexion d'un client.
Quelle est la meilleure façon de savoir si le client s'est déconnecté ? Normalement, un client est censé envoyer une commande de fermeture, mais que se passe-t-il s'il se déconnecte manuellement ou perd complètement la connexion réseau ? Comment le serveur peut-il détecter ou gérer cette situation ?
0 votes
Regardez ici (pour les pires scénarios) : tldp.org/HOWTO/TCP-Keepalive-HOWTO/overview.html (Vérification des pairs morts)
5 votes
Parce qu'il y a tellement de réponses fausses et trompeuses, voici la bonne réponse : Suivez les spécifications du protocole que vous implémentez au-dessus de TCP. Il doit préciser si cela se fait par des délais d'attente, des échecs d'écriture ou tout autre mécanisme. Si vous concevez un protocole, assurez-vous de concevoir un moyen de détecter la déconnexion du client, si cela est nécessaire.