Transmission impossible sans MessageBox ?

Résolu
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 - 14 nov. 2004 à 00:10
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 - 15 nov. 2004 à 18:02
Bonsoir,

Voila, il m'arrive un truc assez bizarre, j'ai remarqué ce probleme depuis quelques jours déja, et j'avoue que je n'y trouve aucune solution...
Dans le code suivant, si je mets la MessageBox() qui est en commentaire, le tab iCards est correctement envoyé, alors que si je ne le mets pas, il n'est pas correctement envoyé :

for (i = 0; i < 32; ++i) { //Melange les cartes
temp = iCards[i];
j = getrandom(0, 10);
iCards[i] = iCards[j];
iCards[j] = temp;
}
send(sck_other, "DEAL", 5, 0);
//MessageBox(0, 0, 0, 0);
send(sck_other, (const char *)iCards, 128, 0);

Je trouve ca VRAIMENT bizarre, et ne vois pas pkoi il se passe ca, si quelqu'un a une explication...

Merci beaucoup d'avance ;)

++

9 réponses

cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
14 nov. 2004 à 00:56
Salut,
Si tu enleve la messagebox, y'a de forte chances pour que le "DEAL" et le tableau soient envoyés en meme temp.
Et dans ce cas la, ce n'est pas un probleme, c'est normal en tcp/ip.
3
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
14 nov. 2004 à 08:02
Ok merci, donc en fait, je vais pas m'embeter, je vais faire 1 envoi et je me debrouillerai par la suite. C'est meme beaucoup mieux, merci aardman.

++
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
14 nov. 2004 à 17:20
Salut,
En TCP, tout ce que tu envoies doit etre mis dans une structure qui contient la taille des données que tu envoies. Comme ca, celui qui recoit peut extraire chaque "message" de donnée que tu envoies, sans ambiguité.
0
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
14 nov. 2004 à 22:05
Tu veux parler d'une structure de ce genre :

struct packet {
int len;
char msg[256];
}

?

Je ne vois pas trop l'interet alors, puis ce que send permet de specifier la taille du msg a envoyer.
J'ai ptet mal compris ce ke tu voulais me dire, donc n'hesite pas a m'embeter ;)

Merci

++
0

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

Posez votre question
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
14 nov. 2004 à 22:46
Salut,
En gros c'est ca, sauf que je mettrais msg[1].
Pour chaque paquet, il faudra allouer la structure dynamiquement afin de controler la taille du tableau msg[].

L'interet est simple: si tu recois 2 messages (ou plus) en meme temp, tu peux facilement les retrouver et les extraire car tu as la taille de chaque message.
Dans le code que tu montres plus haut, les 2 messages sont envoyés en meme temp, et visiblement ca a posé probleme car tu pensais que le 2eme message n'etais pas envoyé.
0
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
15 nov. 2004 à 11:01
soluce : temporiser
Magic Nono: l'informagicien! 8-)
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
15 nov. 2004 à 12:22
Salut,
magic_Nono > j'espere que tu es pas serieux...
0
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
15 nov. 2004 à 15:36
non, dslé
mais ceci dit, ça doit etre une soluce au pire...
en attendant de mettre mieux en place.

Parfois, il faut savoir mettre temporairement une solution dégradée en place
Amicalement
Magic Nono
0
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
15 nov. 2004 à 18:02
Euh temporiser, tu veux dire koi par la ? send(); sleep(x); send() ???
0
Rejoignez-nous