Gros probleme avec les sockets BSD!!!

SuperCed

Membre expert
Club iGen
20 Juin 2001
1 347
72
45
superced.rb38.eu
J'ai un big soucis avec les socket BSD.

Je m'occupe du serveur.

Dans une boucle, j'envoie regulierement un message a un client grace a la fonction send

Tout marche bien, tout est ok mais, si le client se deconnecte, alors la fonction send revoie une erreur et quelques secondes apres, elle fait planter le programme. Comment puis-je faire pour eviter de faire planter tout le programme a chaque fois?

J'ai essaye la fonction write et c'est la meme chose...
Existe-il un moyen de tester si le client est toujours connecte avant d'utiliser la fonction send?

Y a-t-il quelque chose a mettre dans le dernierb parametre de send pour ne pas que ca plante lamentablement?

Merci beaucoup de vos reponses
 
A priori, c'est bien documente comme tel:
Si on fait un write ou un send alors que la connexion est fermee de l'autre cote, ca fait un signal de type SIG_PIPE.
Que faire pour enlever ce message?