CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Programmation Internet

CYBER_BOB
CYBER_BOB
Niveau 10
25 mai 2004 à 11:34:20

Bonjour a tous,
mon sujet et un peu hors sujet, bien que pas totalement... enfin, je suis en train de codé un petit programme qui aurra accés a internet... donc voila une partie de mon code:

/ / debut de transmission
void begin_transmit()
{
/ / definition de variable
char transmit_ok[3];
int confirm = 0;

while(confirm ! = 1)
{
sendto(sock, " ok", 2, 0, ( SOCKADDR*)&, sizeof(sin));
recvfrom(sock, transmit_ok, sizeof(transmit_ok), 0, ( SOCKADDR*)&, sizeof(sin));

if(transmit_ok == " ok")
confirm = 1;
}

return;
}

donc ici je j´envoie un chaine " ok" et je cherche a recevoir un chaine de caractere... lorsque cette chaine de caractere est " ok", je sort de ma boucle infinie...
le probleme est que la chaine que mon programme envoie n´est pas " ok", et je ne trouve vraiment pas pourquoi ! !!
J´espere que vous pourrez m´aider...
Merci par avance...
Bob

JeanYvesYves
JeanYvesYves
Niveau 10
25 mai 2004 à 11:45:44

déja, tu as une faute ici :

if(transmit_ok == " ok")

--> ça te renverra forcément faux
tout simplement parce que transmit_ok et " ok" dont tous deux des pointeurs, et auront des adresses différentes.

remplace cette ligne par :

if ( strcmp(transmit_ok," ok")==0)

avec :

  1. include < string.h>
CYBER_BOB
CYBER_BOB
Niveau 10
25 mai 2004 à 11:58:34

helas ca ne marche toujours pas ! !!

JeanYvesYves
JeanYvesYves
Niveau 10
25 mai 2004 à 12:04:58

fait un printf de ton transmit_ok pour voir ce qu´il te donne.

CYBER_BOB
CYBER_BOB
Niveau 10
25 mai 2004 à 12:06:55

c´est ce que j´ai fait et il me donne plein de truc bizar mais pas de ´ok´ et c´est ca que je ne comprend pas ! !!
en fait je le sais depuis le debut, mais je ne sais pas pourquoi et c´est pourquoi je pose la question ici ! !!

CYBER_BOB
CYBER_BOB
Niveau 10
25 mai 2004 à 12:08:19

mais est ce que ca peut etre du au fait que pour tester mon programme, je le test avec ma propre IP?

JeanYvesYves
JeanYvesYves
Niveau 10
25 mai 2004 à 12:18:23

normalmeent non.
peut etre parce que tu lis et écrit sur la meme socket.

dans ton
recvfrom(sock, transmit_ok, sizeof(transmit_ok), 0, ( SOCKADDR*)&, sizeof(sin));

essaie de ramplcer ton sizeof(transmit_ok) par 3 directement pour tester.

CYBER_BOB
CYBER_BOB
Niveau 10
25 mai 2004 à 12:25:18

non ca marche toujours pas... je viens de faire une capture pour que tu vois ce que ca me fait:

http://perso.wanadoo.fr/raven-corporation/images/capture.jpg

CYBER_BOB
CYBER_BOB
Niveau 10
25 mai 2004 à 13:43:06

j´avance un peu, voici mon code:

/ / debut de transmission
void begin_transmit()
{
/ / definition de variable
char transmit_ok[5];
int confirm = 0;

printf("Tapez ok : " );
scanf("%s", transmit_ok);

while(confirm ! = 1)
{
sendto(sock, transmit_ok, sizeof(transmit_ok), 0, ( SOCKADDR*)&, sizeof(sin));
recvfrom(sock, transmit_ok, sizeof(transmit_ok), 0, ( SOCKADDR*)&, sizeof(sin));

printf("%s", transmit_ok);

if(strcmp(transmit_ok, " ok") == 0)
confirm = 1;
}

return;
}

et quand je tape ok, tout ce passe correctement... maintenant il faut savoir pourquoi, mon ancien code ne marche pas... si quelqu´un a un idée ! !!

Ruffi
Ruffi
Niveau 9
25 mai 2004 à 13:46:47

J´avait eu ce genre de probleme : il ne met pas le ´\0´ a la fin de ton string.

CYBER_BOB
CYBER_BOB
Niveau 10
25 mai 2004 à 13:48:17

dans kel cas il ne met pas le ´\0´?

CYBER_BOB
CYBER_BOB
Niveau 10
25 mai 2004 à 14:00:53

mais ce que je faire reste possible? tu pourrais pas me dire comment corrigé le probleme?

Ruffi
Ruffi
Niveau 9
25 mai 2004 à 14:01:16

Je m´en rapel plus trop, mais je me rapel qu´a un endroit, si je ne metait pas moi meme un \0 a la fin du mot, il mecrivait d´autres trucs contenu dans la memoire. Mais ce probleme était apparut quand j´avait mis mes fonctions reseau dans une dll.

JeanYvesYves
JeanYvesYves
Niveau 10
25 mai 2004 à 14:03:52

si tu veux mettre un \0 essaie, apres ton recv, de mettre :

transmit_ok[4]=´\0´;

CYBER_BOB
CYBER_BOB
Niveau 10
25 mai 2004 à 14:16:00

helas ca ne marche toujours pas ! !!

CYBER_BOB
CYBER_BOB
Niveau 10
25 mai 2004 à 16:04:40

je n´y arrive pas... help ! !!

CYBER_BOB
CYBER_BOB
Niveau 10
25 mai 2004 à 16:18:22

enfin maintenant il faut vraiment que je trouve une solution parce que ca me le fait meme au milieu de mon programme, quand on ´chat´ ! !!

darkpaine
darkpaine
Niveau 10
25 mai 2004 à 18:38:47

lol
g rien capté a ce ke vous faites :lol:
alors....

darkpaine
darkpaine
Niveau 10
25 mai 2004 à 18:39:44

:lol: :lol: :lol: :lol: :lol: :lol:

:lol: :lol: :lol: :lol:

Altonfrere
Altonfrere
Niveau 10
25 mai 2004 à 19:27:51

euh pourquoi transmit_ok[4]=´\0´; ? ? si tu veux tester la chaine " ok" faut faire transmit_ok[2]=´\0´; non pas [4] !

sinon autre solution tu fais

if ( strncmp(transmit_ok,"ok",2) == 0)
. ..

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment