Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2902 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Socket et Packet en C

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Socket et Packet en C

n°678399
extres
Posté le 19-03-2004 à 20:10:19  profilanswer
 

Bonjour,
 
Comment faire en C un paquet UDP/IP :
 
Je dois creer une socket IP puis mettre dans le buffer un paquet UDP "fait a la main" et l envoyer
 
ou
 
Faire une socket UDP mais comment apres acceder au champ d'entete IP et UDP ?
 
Merci

mood
Publicité
Posté le 19-03-2004 à 20:10:19  profilanswer
 

n°678405
Taz
bisounours-codeur
Posté le 19-03-2004 à 20:13:25  profilanswer
 

lire la documentation spécifique à ton système

n°678415
extres
Posté le 19-03-2004 à 20:27:54  profilanswer
 

sur un systeme UNIX
 
tu aurais un lien ? car j ai cherche mais a chaque fois, il parle que de socket UDP, ils disent pas comment acceder au entete.

n°678427
Taz
bisounours-codeur
Posté le 19-03-2004 à 20:45:08  profilanswer
 

ben lis mieux tes liens et vois comment on paramètres tout ça pour envoyer un paquet a une adresse donnée

n°678429
extres
Posté le 19-03-2004 à 20:49:07  profilanswer
 

Je viens de voir deja que pour creer une socket ip il faut etre root ce qui dans mon cas n'est pas possible donc ca serait la 2eme solution.
 
En fait mon probleme vient du fait que l entete IP et l entete UDP n auront pas la meme adresse de destination.

n°678431
Taz
bisounours-codeur
Posté le 19-03-2004 à 20:59:39  profilanswer
 

non.
 
 
j'ai l'impression que t'as rien compris à rien, alors peut être du devrais voir comment ça marche le protocole UDP/IP comparé à TCP/IP, et ensuite te mettre à la programmation

n°678433
extres
Posté le 19-03-2004 à 21:11:37  profilanswer
 

le non c'est pour ?

n°678434
Taz
bisounours-codeur
Posté le 19-03-2004 à 21:18:05  profilanswer
 

n'importe qui peut créer des socket

n°678435
extres
Posté le 19-03-2004 à 21:23:45  profilanswer
 

dans les docs que j ai lu, creer une socket avec SOCK_RAW est accessible qu au root

n°678437
Taz
bisounours-codeur
Posté le 19-03-2004 à 21:24:49  profilanswer
 

quitte parle de crée un SOCK_RAW ?

mood
Publicité
Posté le 19-03-2004 à 21:24:49  profilanswer
 

n°678438
extres
Posté le 19-03-2004 à 21:29:25  profilanswer
 

cree une socket IP non ?
 
une socket UDP c est SOCK_DGRAM, et SOCK_RAW une socket IP.
 
j ai encore faux ? :/

n°678442
Taz
bisounours-codeur
Posté le 19-03-2004 à 21:34:37  profilanswer
 

et le paquet IP, tu vas le faire tout seul peut être ? mettre les adresses, le crc, la payload, le ttl, les champs de versions, le protocole, le numéro de fragment, les flags, etc ?

n°678443
extres
Posté le 19-03-2004 à 21:38:51  profilanswer
 

si je cree une socket UDP, je peux pas acceder aux champs IP, je fais comment alors ?

n°678445
Taz
bisounours-codeur
Posté le 19-03-2004 à 21:40:59  profilanswer
 

y a pas de champ IP.
un packet IP, c'est juste un train de bits.
 
bon quand t'auras compris, ce qu'est UDP, et ce que c'est que faire un paquet IP (la couche en dessous), remonte ce sujet ...

n°678446
extres
Posté le 19-03-2004 à 21:42:32  profilanswer
 

ok

n°678447
extres
Posté le 19-03-2004 à 21:44:34  profilanswer
 

je sais que dans UDP dans l entete il y a un champ destination et source, et quand il est encapsule dans un paquet IP, ce dit paquet contient lui aussi un champ destination, source et tous ce que tu as decrit en haut

n°678449
Taz
bisounours-codeur
Posté le 19-03-2004 à 21:46:49  profilanswer
 

et donc tu veux faire quoi ?

n°678451
extres
Posté le 19-03-2004 à 21:50:03  profilanswer
 

mon champ destination dans le paquet IP doit avoir une adresse, et dans mon paquet UDP lui aura une autre adresse.

n°678452
Taz
bisounours-codeur
Posté le 19-03-2004 à 21:50:18  profilanswer
 

oui et  ?

n°678456
extres
Posté le 19-03-2004 à 21:55:48  profilanswer
 

et je fais comment pour modifier le champ de destination IP ?
 
car si je fais un sendto avec ma socket UDP, le champ destination IP et UDP sont les memes


Message édité par extres le 19-03-2004 à 21:57:31
n°678458
Taz
bisounours-codeur
Posté le 19-03-2004 à 21:59:18  profilanswer
 

ben tu vois tes doigts ? tu vois ton clavier ? ben voilà, tu fais un malloc et tu remplis ton datagramme. c'est tout ce que t'as à faire

n°678460
extres
Posté le 19-03-2004 à 22:02:05  profilanswer
 

je fais un malloc sur quoi ?
 
si je savais comment y acceder, je serai pas venu sur le forum

n°678462
bjone
Insert booze to continue
Posté le 19-03-2004 à 22:05:13  profilanswer
 

t'es à l'ouest.....
 
http://www.zytrax.com/tech/protocols/tcp.html
 
que tu sois en TCP ou en UDP ou autre, c'est le header IP qui contiens l'address IP source et destination, les champs de destinations IP et UDP sont forcément les mêmes.... (puisqu'il y en a qu'un)

n°678463
Taz
bisounours-codeur
Posté le 19-03-2004 à 22:05:40  profilanswer
 

extres a écrit :

je fais un malloc sur quoi ?
 
si je savais comment y acceder, je serai pas venu sur le forum

mais y a rien à accéder. tu t'alloues un bout de mémoire, quelques dizaines d'octets contigus, et tu remplis

n°678468
extres
Posté le 19-03-2004 à 22:10:54  profilanswer
 

et j en fais quoi de ce octet ?
 
bjone : si le cheksum=0, alors il y a aussi un champ source et destination.

n°678469
bjone
Insert booze to continue
Posté le 19-03-2004 à 22:11:22  profilanswer
 

exact, mais qu'est-ce t'en as à foutre ?

n°678472
Taz
bisounours-codeur
Posté le 19-03-2004 à 22:14:57  profilanswer
 

bjone a écrit :

t'es à l'ouest.....
 
http://www.zytrax.com/tech/protocols/tcp.html
 
que tu sois en TCP ou en UDP ou autre, c'est le header IP qui contiens l'address IP source et destination, les champs de destinations IP et UDP sont forcément les mêmes.... (puisqu'il y en a qu'un)  

non

n°678475
extres
Posté le 19-03-2004 à 22:17:42  profilanswer
 

voila, comment une station A fait pour acceder à une station C, en passant par une station B ?
 
la station A se connecte a la B avec une socket
B recoit le paquet et voit que dans l'entete UDP c est l adresse de C alors il lui envoie, comme un routeur
 
je fais ca comment ? je fais une socket UDP entre A et B, et le buffer que je met dedans c est l'adresse de C ?

n°678478
Taz
bisounours-codeur
Posté le 19-03-2004 à 22:19:40  profilanswer
 

extres a écrit :

voila, comment une station A fait pour acceder à une station C, en passant par une station B ?
 
la station A se connecte a la B avec une socket
B recoit le paquet et voit que dans l'entete UDP c est l adresse de C alors il lui envoie, comme un routeur
 
je fais ca comment ? je fais une socket UDP entre A et B, et le buffer que je met dedans c est l'adresse de C ?

c'est pas des stations c'est des routeurs qui font ça.
 
 
sinon bonne nouvelle, t'as toujours pas compris que IP envoit __toujours__ des datagrammes et que TCP/UDP c'est la couche __supérieure__

n°678483
extres
Posté le 19-03-2004 à 22:21:25  profilanswer
 

:)
 
comment fais la station pour se connecter au routeur et envoyer une adresse internet en meme temps ?

n°678485
bjone
Insert booze to continue
Posté le 19-03-2004 à 22:22:03  profilanswer
 


 
enfin je me comprends :D
 
bon ce que je veux dire, c'est que la pile IP s'occupe de tout...

n°678488
Taz
bisounours-codeur
Posté le 19-03-2004 à 22:23:15  profilanswer
 

mais tu racontes quoi bordel ? t'as rien compris à rien du tout.
personne se connecte à un routeur. si le paquet doit etre routé pour atteindre son destinataire, alors il l'est.

n°678489
Taz
bisounours-codeur
Posté le 19-03-2004 à 22:23:59  profilanswer
 

bjone a écrit :


 
enfin je me comprends :D
 
bon ce que je veux dire, c'est que la pile IP s'occupe de tout...

oui, l'entete du datagramme IP est modifiée. la charge elle ne varie pas

n°678490
bjone
Insert booze to continue
Posté le 19-03-2004 à 22:24:01  profilanswer
 

extres a écrit :

:)
 
comment fais la station pour se connecter au routeur et envoyer une adresse internet en meme temps ?


 
la pile IP s'occupe de ça.
dans ta pile, tu as des adresses de passerelles, etc...
le protocole est conçu pour te faire ça de manière à peu près automatique et transparente...

n°678493
chaica
Posté le 19-03-2004 à 22:28:04  profilanswer
 

extres a écrit :

:)
 
comment fais la station pour se connecter au routeur et envoyer une adresse internet en meme temps ?


 
Bon pour arrêter le massacre, tu devrais jeter un oeil à ce document pour une initiation rapide à tcp/ip :
http://www.commentcamarche.net/internet/tcpip.php3

n°678502
extres
Posté le 19-03-2004 à 22:40:16  profilanswer
 

merci a tous, j y reflechirai demain

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Socket et Packet en C

 

Sujets relatifs
[Question] Socket (résolu)recv non bloquant en progra socket (connected)
Socket client\serveurSocket prob client\serveur help !!!!
Socketsocket AF_UNIx (ou AF_LOCAL)
[Debutant] Pb avec ObjectOutputStream et les socketQue signifie "invalid_socket" ?
envoyer un fichier autre que les .txt avec les socket 
Plus de sujets relatifs à : Socket et Packet en C


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR