Ton problème viens de cette ligne:
Code :
- if( sock_serv=socket(AF_INET, SOCK_DGRAM, 0) <0)
|
tu utilises une affectation et une comparaison dans la même condition du if donc il faut entourer ton affectation par des parenthaises comme suite:
Code :
- if( (sock_serv=socket(AF_INET, SOCK_DGRAM, 0)) <0)
|
ça devrait régler ton problème au niveau du bind.
Au passage, quelque remarques à part:
- Pour la fonction main en langage C, on retourne 0 quand c'est succès, et dans le cas d'échec on retourne 1, et non pas le contraire comme tu as fait dans ton code.
- Au niveau du recvfrom, utilise sizeof(line) pas strlen(line). recvfrom ne peut pas connaitre strlen(line) avant de recevoir line ...
- En mode texte, le '\0' de fin de chaine n'est pas transmis, il faut le faire donc: line[n] = 0; et au niveau de recvfrom tu dois prévoir de la place pour ce caractère (le 0), donc sizeof(line)-1
à lire absolument: http://mapage.noos.fr/emdel/reseaux.htm
---------------
JMCT
Message édité par tomap le 10-04-2009 à 22:19:22