Voilà, j'ai codé une application, dont la partie réseau est géré dans un thread, pour pouvoir lire & ecrire en permanence et les sockets en évitant les blocages.
Jusque là, tout va bien, les 2 parties discutent sans problème.
Mais lorsque je "tue" le serveur par un Ctrl+C, la fonction Send me fait planté mon programme client, sans aucun message d'erreur en sortie, et avant même de récuperer le moindre code d'erreur de la fonction (qui devrai en renvoyer un, vu qu'il n'y a plus de serveur). Cherchant déseperement le problème, j'ai vérifier qu'il n'y avait pas de fuites mémoires où accès simultané due au thread aux socket, où encore de mauvais paramètres de trames. Rien de tout ça. Juste réussi a voir qu'un signal SIGPIPE renvoyé par le thread visiblement...
À l'aide de tracage, j'ai pu voir que c'était un problème entre le thread et la fonction send, sans avoir plus de détails. Je fait donc, en définitif, appel à vous pour pouvoir me sortir du bourbier, car là dessus, je sèche, et le projet est extremement important.
(Pour info, application sous Linux et donc utilisant les pthreads)
Merci beaucoup.
Partager