Valeur 0 en TCP [Résolu]

Signaler
Messages postés
3
Date d'inscription
mercredi 8 décembre 2004
Statut
Membre
Dernière intervention
23 octobre 2006
-
Messages postés
212
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
28 mai 2011
-
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

Messages postés
212
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
28 mai 2011
2
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!!!
Messages postés
3
Date d'inscription
mercredi 8 décembre 2004
Statut
Membre
Dernière intervention
23 octobre 2006

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
Messages postés
212
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
28 mai 2011
2
 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!!!
Messages postés
3
Date d'inscription
mercredi 8 décembre 2004
Statut
Membre
Dernière intervention
23 octobre 2006

Je vais tester, merci!

Re@L_G@MeR
Messages postés
212
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
28 mai 2011
2
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!!!