sendto() d'une structure sockaddr
Bijour' !
J'ai un petit problème... Je suis entraint de créer un programme p2p pour les cours et je bloque sur l'envoye d'une adresse avec son ip...
En fait, de mon tracker, j'envoie une structure sockaddr_in à mon client...
Le prolème est que le client ne recoit pas correctement cette structure, en faisant des printf, la structure sockaddr_in reponse dans le client avant et après réception du message reste la meme alors qu'elle devrai contenir la structure envoyé par le tracker. :roll:
Merci d'avance pour votre aide !
CLIENT:
Code:
1 2 3 4 5 6 7 8 9 10
| struct sockaddr_in reponse ; // DEMANDER AU PROF PK CA MARCHE PAS AVEC * reponse
printf("%s\n", inet_ntoa(reponse.sin_addr.s_addr)) ;
if(recvfrom(s,&reponse,sizeof(struct sockaddr_in *), 0, (struct sockaddr *) &tracker, &lg)<0)
{
perror("Erreur lors de la reception de la réponse") ;
exit(-1) ;
}
printf("%s\n", inet_ntoa(reponse.sin_addr.s_addr)) ; |
TRACKER
Code:
1 2 3 4 5 6 7 8 9 10 11
| int bloc ;
sscanf(buf, "%d", &bloc) ;
//printf("%d\n", bloc) ;
reponse = envoiInfoBloc(tab, bloc) ; // choisi quelle adresse prendre
printf("%s\n", inet_ntoa(reponse->sin_addr.s_addr)) ;
if(sendto(s,reponse,sizeof(struct sockaddr_in *),0,(struct sockaddr *) &client, sizeof(client))<0)
{
perror("erreur envoi reponse") ;
exit(2) ;
} |