bonjour tout le monde,
maitenant je j'arrive a envoyer des donnée avec mes sockets, j'aimerais traiter le retour.
pour cela j'ai créé la fonction suivante:
apres un envoie de donné, je fais appel a cette fonction afin de récupérer le retour (ICMP) mais la tout s'arrete sur l'appel a la fonction recvfrom(). j'ai appercu cela en mode débogueur, mais pourtant j'ai bien un retour. Ce retour est observé avec ethereal.
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
17
18
19
20 //PACKET_SIZE 1024 struct sockaddr_in sock_rcv; bool reception_Socket() { bool tempo = false; int result; //déclarration d'un buffer stockant l'ensmble des données (entête IP et ICMP) char buffer[PACKET_SIZE]; int fromlen = sizeof(sock_rcv); result = recvfrom(socketRaw, (char *)&buffer, PACKET_SIZE, 0, (struct sockaddr *)&sock_rcv, &fromlen); if(result != SOCKET_ERROR) { tempo = true; } return tempo; }
Je ne comprend pas pourquoi ma fonction attend inéfiniment alosr que le retour du paquet c'est bien réalisé!!!
si vous avez une explication a me fournir ou une piste d'aide, je suis preneur.
merci d'avance.
Partager