salut tout le monde,
mon appli utilise les socket en mode RAW. j'utilise IP et ICMP pour envoyer des données et surtout en recevoir(c'est l'objectif).
Cependant quand j'écoute avec Ethereal (sniffer) et que je lance mon programme je n'ai aucunne donnée transmise???!!!!
voila un bout de code :
voila le code utilisé pour "envoyer" des données avec les socket RAW.
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 struct sockaddr_in IP_sock_info; int tailleSocket = sizeof(sockaddr_in); WSADATA WSAData; WSAStartup(MAKEWORD(2,2), &WSAData); socketRaw = socket(AF_INET,SOCK_RAW,IPPROTO_ICMP); IP_sock_info.sin_family = AF_INET; IP_sock_info.sin_addr.s_addr = inet_addr("127.0.0.1"); //Avant cela j'ai déclaré deux structures entete IP et entete ICMP et je les ai initialisées. IP_HEADER *pIPEntete; // Déclare un pointeur sur la stucture IP_HEADER. */ pIPEntete=&ipEntete; // Initialisation du pointeur sendto(socketRaw, (char *)pIPEntete, 36, 0, (struct sockaddr *)&IP_sock_info, tailleSocket);
Note: le sendto me revoie la valeur 36 et apres cela j'ai fait un WSAGetLastError() qui me renvoi la valeur 6!!!
si quelqu'un comprend pourquoi rien n'est envoyé, je suis preneur.
Partager