Bonjour à vous,
Je suis actuellement sur une application importante, qui communique à travers le réseau. Le système utilise les sockets pour les clients/serveurs. Jusque la tout va bien.
J'ai fait des sockets non bloquantes à l'aide d'un select devant les recv et send. Ça fonctionne bien tant que le réseau est opérationnel.
Maintenant, je dois gerer les erreurs due à la déconnexion. Et là, j'avoue que je lutte. Quand le client est déconnecté "proprement" ça fonctionne, mais je n'arrive pas à détecter la perte de communication si je débranche le cable réseau.
Déjà, est-t-il possible de le voir à la lecture de donnée sur la socket ? Parce que le select avant la lecture renvoie juste l'erreur comme quand il n'y a pas de donnée.
À l'écriture, est-t-il possible de voir immédiatement la déconnexion, car j'arrive a avoir l'erreur mais après un timeout de 4/5 secondes... Ce qui est beaucoup trop important pour l'application. Et il me dis avant ça que l'écriture est correct... J'ai donc perdu mes trames.
Je précise aussi que je dois absolument éviter tout perte de message, car c'est un système gèrant une remonté d'information automate.
De plus, le système doit être, si possible, compatible Linux & Windows.
Merci beaucoup
Partager