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

  FORUM HardWare.fr
  Programmation
  C

  un problème avec les sockets :(

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

un problème avec les sockets :(

n°1675708
dcsara
Posté le 23-01-2008 à 15:36:04  profilanswer
 

Bonjour,
j'ai un sérieux problème, voila j'utilise cette fonction (voir ci dessous), le problème c'est que j'arrive pas à envoyer correctement le buffer,
quand j'édite la taille du buffer, il indinque que c'est 2 alors que ca devra etre normalement 20. je crois que j'ai des erreur lors du remplissage du buffer.
Aidez moi svp
Sara  
 

Code :
  1. uint16_t seq, message_len, hl, tp, ln;
  2. uint32_t at, gd;
  3. unsigned char *buffer;
  4. unsigned int echolen;
  5. int i;
  6. buffer = (__u8 *) malloc(100);
  7. /* initialisation et creation de la socket */
  8. // je l'ai pas mis pour qu'il soit pas tres encombrant, en plus pas de prob avec cette partie car la socket s'ouvre normalement et la connexion est aussi réussi, c'est le buffer qui buge
  9. seq = htons(0);
  10. hl = htons(0);
  11. at = htonl(1);
  12. gd = htonl(1);
  13. tp = htons(2);
  14. ln = htons(2);
  15. message_len = htons(20);
  16. buffer[0] = 0x10;
  17. buffer[1] = 0x01;
  18. bcopy(&seq,&(buffer[2]),2);
  19. bcopy(&at,&(buffer[4]),4);
  20. bcopy(&gd,&(buffer[8]),4);
  21. bcopy(&hl,&(buffer[12]),2);
  22. bcopy(&message_len,&(buffer[14]),2);
  23. bcopy(&(tp),&(buffer[16]),2);
  24. bcopy(&(ln),&(buffer[18]),2);
  25. /* Send the message */
  26. echolen = strlen(buffer);
  27. printf(" longeur est %d\n", echolen);
  28. /* ici echolen est égale à 2 alors que normalement elle devra etre à 20, ce qui pause des problème pour l'envoie et lors de la reception*/
  29. if (send(s, buffer, echolen, 0) != echolen) {
  30.  perror("Send():" );
  31. }

mood
Publicité
Posté le 23-01-2008 à 15:36:04  profilanswer
 

n°1675769
tpierron
Posté le 23-01-2008 à 16:30:12  profilanswer
 

Heu, si ton message est figé dans le marbre, et a une taille fixe de 20 octets, alors utilise la constante 20 et pas un strlen() (peut-être avec un #define pour limiter la casse en cas de changement).

n°1675771
Taz
bisounours-codeur
Posté le 23-01-2008 à 16:30:34  profilanswer
 

buffer n'est pas une chaîne de caractères.


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

  un problème avec les sockets :(

 

Sujets relatifs
Problème avec les sockets !Problème de thread avec les sockets en .NET
Probleme avec mon code source pour les socketsPetit problème de sockets génant
Problème de sockets TCP[C] Problème de sockets
[Sockets]Problème étrangeproblème avec les sockets pour passer de windows a linux
problème applet et socketsprobleme completement inexplicable avec les sockets sous windows c++
Plus de sujets relatifs à : un problème avec les sockets :(


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