Valeur 0 en TCP

Résolu
cs_realgamer Messages postés 3 Date d'inscription mercredi 8 décembre 2004 Statut Membre Dernière intervention 23 octobre 2006 - 23 oct. 2006 à 22:48
goast_tu Messages postés 212 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 28 mai 2011 - 23 oct. 2006 à 23:57
Voici mon problème : je veux envoyer un tableau de booléen via TCP, sauf que lorsque cela se transforme en tableau de char pour le send, il détecte une valeur 0 (valeur de fin de tableau) à la première valeur, et n'envoie absolument rien. Y a-t-il un moyen de contourner ca?

Merci!
Re@L_G@MeR

5 réponses

goast_tu Messages postés 212 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 28 mai 2011 2
23 oct. 2006 à 23:08
Je sais pas si les bouleans en C++ sont des entiers (ils le sont
surement comme en C) mais si c'est la cas tu n'as qu'a faire un xor
avec un entier par exemple 49119 de cette facon tous entiers (booleans)
ne seront pas identiques à 0 à moin d'etre parfaitement egal à 49119.
Ensuit tu peux transferer ces valeures comme chaines de caracters et a
la reception tu refais le xor avec 49119 et tu retrouve les valeurs de
depart.

Remarque il faut traiter a part le cas ou la valeur est egale a 49119.
Il est aussi important de preciser que 49119 est codé sur aumoin 2
octets non nuls donc ce chiffre ne convient que pour le cas de windows
qui code ces entiers sur 2 octets. Si tu code pour linux il faut
utiliser un entier plus grand qui se code sur 4 octets non nuls (ex
3220175808).

<hr size="2" width="100%" />Trafic web gratuit!!!
3
cs_realgamer Messages postés 3 Date d'inscription mercredi 8 décembre 2004 Statut Membre Dernière intervention 23 octobre 2006
23 oct. 2006 à 23:13
Merci de l'info! Mais juste pour savoir, XOR est un opérateur de cryptage...il n'y a pas moyen de faire autrement que d'encrypter et de décripter la valeur??? Parce que il est possible que l'opération se faisse + de 180 fois par secondes, alors je cherchais possiblement le maximum de performances...

Re@L_G@MeR
0
goast_tu Messages postés 212 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 28 mai 2011 2
23 oct. 2006 à 23:31
 Si je me trempe pas un xor c'est une operation extermmement
simple plus simple meme qu'une addition donc, a moin que tu va faire
tourner ton programme sur un processeur 32 MHz avec windows installé
decu, tu ne risque pas de ralentire l'execution.
 Et puis je ne
pence pas qu'il y a un autre moyen car pour transferer un zero il faut
le transformer soit par une addition soit par un xor soit par autre
moyen mais le xor me semble etre le plus efficace.
<hr size="2" width="100%" />Trafic web gratuit!!!
0
cs_realgamer Messages postés 3 Date d'inscription mercredi 8 décembre 2004 Statut Membre Dernière intervention 23 octobre 2006
23 oct. 2006 à 23:32
Je vais tester, merci!

Re@L_G@MeR
0

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

Posez votre question
goast_tu Messages postés 212 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 28 mai 2011 2
23 oct. 2006 à 23:57
Si non je pence que tu peut aussi transferer autre chause que las
chaines de caracters. si je me trempe pas les fonctions de base de tcp
recoivent un pointeur sur les données et leur longueur donc les données
peuvent etre de n'importe quel type. Je me demande si tu n'utilise pas
une fonction simplifié ou specialement concu pour les chaines. essay de
trouver d'autres fonctions je paris que tu en trouvra plus efficaces.

<hr size="2" width="100%" />Trafic web gratuit!!!
0
Rejoignez-nous