Transfert d'une structure en C/C++ avec UDP

Résolu
banjo12 Messages postés 25 Date d'inscription dimanche 16 novembre 2003 Statut Membre Dernière intervention 13 novembre 2005 - 11 nov. 2005 à 12:36
banjo12 Messages postés 25 Date d'inscription dimanche 16 novembre 2003 Statut Membre Dernière intervention 13 novembre 2005 - 13 nov. 2005 à 11:54
Je vous explique mon petit probleme : Pour notre projet d'IUT, on
voudrait envoyer grace au protocole UDP une structure d'image (IPLimage
d'intel) par le réseau. En fait, c'est plutot une suite de IPLimage car
c'est pour une video. On a pensé au protocole RTP, mais apparemment on
ne peut envoyer que des médias via ce protocole. Donc deuxieme solution
:UDP. J'ai compris comment il fonctionnait mais je n'ai trouvé de
l'aide ou des exemples que pour envoyer des caracteres ou des fichiers
en mémoire secondaire.

D'ou mes deux questions :

- Est ce que en effet on ne peut envoyer que des médias par RTP ?

- Quelqu'un pourrait t-il me donner une voie pour envoyer une structure qui se trouve en mémoire principale ?

Merci d'avance

11 réponses

cs_neria Messages postés 319 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 16 février 2009
12 nov. 2005 à 20:31
bah en info tout est du numérique, il n'y a pas de type magique :) Je ne connais pas la structure IPL, je l'ai juste regardé vite fait pour voir ce que c'était. La fonction send d'une socket prend un char* et un int pour la taille du char*. Mais pour convertir tout ça en chaîne il n'y a rien de plus facile avec un sprintf !!!! Par contre ça ne sert à rien de convertir les pointeurs. Pour faire la conversion inverse il existe les fonction atoi et atof. Je te conseille de mettre des séparateurs explicites pour les champs de ta structure lors de l'encodage en chaîne de caractère (du style , ou ; ).
Voila amuse toi bien !
3
cs_neria Messages postés 319 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 16 février 2009
12 nov. 2005 à 16:44
Je ne connais pas très bien le protocole UDP, je suis plutôt dans le TCP :) Mais je pense que tu devrais les transférer en plusieurs paquet avec au milieu des paquets de contrôles car j'ai vu qu'il y avait des pointeurs dans cette structure (donc tu ne peux pas la transférer d'un bloc). Perso je ferais un truc de ce genre :
Chronologie des paquets :
1) init
2) Transfert de la structure
3) Fin init
4) image
5) Transfert de l'image
6) Fin image
...
x) fin

Après tu peux aussi ajouter la vérification de l"intégrité des paquets et éventuellement demander un accusé de réception etc etc. Voilà bon courage pour ton projet (moi aussi je suis en IUT).

@+
0
banjo12 Messages postés 25 Date d'inscription dimanche 16 novembre 2003 Statut Membre Dernière intervention 13 novembre 2005
12 nov. 2005 à 17:17
Merci je vois deja un peu plus clair... Mais mon probleme c'est
d'envoyer autre chose que des caracteres, je n'arrive pas à envoyer
autre chose ...
0
cs_neria Messages postés 319 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 16 février 2009
12 nov. 2005 à 19:34
Mais tu es obligé d'envoyer des caractères, car même si tu envois une image tu enverras ses valeurs (donc les caractères via le code ASCII) qui la compose.
0

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

Posez votre question
banjo12 Messages postés 25 Date d'inscription dimanche 16 novembre 2003 Statut Membre Dernière intervention 13 novembre 2005
12 nov. 2005 à 19:53
On ne peut envoyer que des caracteres par UDP ???

Donc pour envoyer ma structure faut que je convertisse toutes les
valeurs en binaire, que je decoupe tout ça et que je reconvertisse tout
en caracteres ??

Rooooooo, j'ai du boulot :(

Au fait tu connais la structure Ipl ?
0
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
12 nov. 2005 à 20:02
Non on envoie des informations en binaire. C'est du numérique.
Donc en théorie tu peux envoyer n'importe quoi.
C'est plus ou moins facile selon la méthode.

YOYO, @+.
YOYO
0
banjo12 Messages postés 25 Date d'inscription dimanche 16 novembre 2003 Statut Membre Dernière intervention 13 novembre 2005
12 nov. 2005 à 20:47
parfait c exactement ce que je voulais, je connaissais pas ses
fonctions : sprintf, atoi et atof. Je vais pouvoir commencer a bosser
lol .

Ma structure d' image comporte une vingtaine d'attributs donc je
pense envoyer attributs par attributs pour apres reconstitué tout sa
coté Client.

Merci encore.
0
cs_neria Messages postés 319 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 16 février 2009
12 nov. 2005 à 21:04
De rien, ca fait plaisir de pouvoir aider quelqu'un :) Je te conseille pour des raisons de synchro de suivre ma méthode plus haut, éventuellement en préfixant le paquet du titre de son contenu. C'est comme ça que j'ai fait pour un projet et ça marche beaucoup mieux au niveau de la synchro et de la complexité du code que si tu envoyait ta structure champs par champs !!

@+
0
banjo12 Messages postés 25 Date d'inscription dimanche 16 novembre 2003 Statut Membre Dernière intervention 13 novembre 2005
13 nov. 2005 à 00:09
oki merci pour tout tes conseils... tu m'as l'air také calé pour un iutien . T'es en deuxieme année ??
0
cs_neria Messages postés 319 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 16 février 2009
13 nov. 2005 à 09:15
oui je suis en seconde année, de plus le C est mon langage préfére et je viens de faire un projet sur les socket donc ça tombait bien :)

@+
0
banjo12 Messages postés 25 Date d'inscription dimanche 16 novembre 2003 Statut Membre Dernière intervention 13 novembre 2005
13 nov. 2005 à 11:54
tu voudrais pas m'envoyer tes sources à gauzere@iutbayonne.univ-pau.fr
. Je pourrais voir commment t'as fait et je penses que sa m'aiderait
beaucoup ( si ça te dérange pas bien sur ...).

Mais t'es en IUT GTR ou Info ??
0
Rejoignez-nous