zied3 a écrit :
Bonjour,
Je développe une application en C standard sur une architecture C/S; J'essaie d'utiliser les sockets pour communiquer avec le servuer (qui est déjà implémenté, j'essaie mtn d'implémentr le client, le serveur tourne pour l'instant sur la même machine ).
D après la doc, la focntion bind doit retourner 0, sinon il y a erreur. Dans mon cas à chaque fois le bind me retourne -1 et quand j essaie d envoyer un message UDP au serveur ça ne marche pas.
Voici un bout de code
SOCKET l_i_sd;
struct sockaddr_in l_s_socketAddress; l_i_sd =(SOCKET)socket(AF_INET, SOCK_DGRAM, 0);
l_s_socketAddress.sin_family = AF_INET;
l_s_socketAddress.sin_port = htons((unsigned short)port); //numéro de port:le même que //celui du serveur
l_s_socketAddress.sin_addr.s_addr =inet_addr("10.0.0.1" );
int k = bind(l_i_sd,(struct sockaddr_in *)&l_s_socketAddress, sizeof(struct sockaddr_in));
//envoi du message UDP
if(sendto(l_i_sd, "test send UDP", 13, 0, (struct sockaddr_in *)&l_s_socketAddress, sizeof(struct sockaddr_in))<0)
{
printf"Send UDP KO" );
}
else
{
printf(" Send UDP OK" );
}
|