Bonjour a tous !
Je developpe une application Client/Serveur.
Pour les connaisseurs, cote serveur, tout de suite apres mon accept(), je verifie l'adresse du clientm afin de l'autoriser ou pas.... s'il n'est pas autorise, je lui renvoie un message d'erreur et je ferme le socket de commnication ... voici le bout de code :
Le probleme, c'est que du cote client, lors de son read, il recoit un Broken Pipe, etant donne que le serveur a ferme la connexion (close(talksock)).... est-ce normal, et si oui, comment contourner ce probleme proprement ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 ... if((talksock = accept(consock, (struct sockaddr*) &cli_addr, &addrlen))==-1) erreur("Error@main: accepting the TCP connection."); if(cli_addr.sin_addr.s_addr != my_addr.sin_addr.s_addr) { write(talksock, "Vous n'etes pas un client autorise!", strlen("Vous n'etes pas un client autorise!") +1); close(talksock); } else { // gestion du client } ...
Merci d'avance !
Partager