Pb socket

jcqguill Messages postés 17 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 19 août 2007 - 1 juil. 2005 à 13:48
jcqguill Messages postés 17 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 19 août 2007 - 9 juil. 2005 à 18:45
Salut,

j'utilise une sockaddr déclaré :

struct sockaddr interface = { AF_INET, "lo" } (ou "eth0")

je rempli des structures du type :

struct ethhdr eth

struct iphdr ip

struct icmphdr icmp

je stock le tout dans un buffer( packet[124] )

la socket est déclarée :

int sockets

sockets =socket(AF_INET, SOCK_PACKET, htons(ETH_P_802_3))

et j'utilise sendto :

sendto(sockets,&packet, sizepacket, 0, &interface,sizeof(struct sockaddr))



Mon packet est correctement envoyé, mais je ne recois pas de reponse(pour un echo ping par ex.).



Quelqu'un peut-il m'aider.

5 réponses

minet03 Messages postés 415 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 2 décembre 2005 3
2 juil. 2005 à 01:57
Tu t'attends à quoi exactement comme réponse ?

La fonction que tu utilise est pour l'UDP non ? Donc la fonction envoi,
mais ne s'occupe pas de voir si c'est bien arrivé ou pas.

Le CyberMonde nous offre une meilleur qualité de vie
CyberMan.inc The WebSite
0
jcqguill Messages postés 17 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 19 août 2007
2 juil. 2005 à 12:39
Salut minet03,

quel est alors le type de socket a utilisé pour pouvoir recevoir une reponse et qui permette de modifier la couche mac.
0
minet03 Messages postés 415 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 2 décembre 2005 3
2 juil. 2005 à 14:03
hum, hélas, je ne suis pas aussi doué que ça avec les sockets. Je
débute. J'utilise toujours le TCP moi. Je ne sais pas ce que sont les
couche mac (si tu veux bien m'expliquer).

Le CyberMonde nous offre une meilleur qualité de vie
CyberMan.inc The WebSite
0
jcqguill Messages postés 17 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 19 août 2007
2 juil. 2005 à 16:23
la couche mac est le niveaux 2 du modele osi (couche liaison)

on y trouve :

-adresse mac destination 6 octets
-adresse mac source 6 octets

-type ou longueur 2 octets



tu retrouve ceci au début de toutes les trames.

l'adresse mac est fixe, toutes les cartes ethernet,wifi... en ont
une.Elle est attribuée par son constructeur. Enfin ,les trois premiers
octets, que l'on appel l'OUI:Organisation Unit Identifier, sont
affectés au constructeur par l'IEEE. Les trois derniers sont affectés
par le constructeur.

Par exemple : 08:00:07 est pour Apple (du moins un des OUI)



pour le
champs type ou longueur par exemple :>0800(hexa) correspond a IP donc ce qui va
suivre(niveau 3 osi, couche réseau) sera de l'ethernet pure,ensuite
dans le datagramme IP tu as un champs protocole,celui qui va etre
encapsuler dans IP par ex: 06(hexa) correspond a tcp(niveau 4,couche
transport) ce qui vient donc a la suite du datagramme IP est du TCP.



Sinon tu dis que la fonction que j'utilise est pour l'udp mais laquel ? je ne vois pas.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jcqguill Messages postés 17 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 19 août 2007
9 juil. 2005 à 18:45
Problême résolu.
0
Rejoignez-nous