"Arnaud Debaene" writes:
Généralement, on définit un format, et à partir de là, le flux ne
contient que des octets, et je ne sais pas s'il y a un sens de parler
de BE/LE. (Dans la mésure où un seul octet ne suffit pas pour
transmettre un int, le format va sans doute parler de l'ordre des
octets.
...et donc va employer les termes big endian ou little endian, d'où
Et bien que je travaille sur des protocols de transmission depuis
longtemps, je ne me suis jamais servi de htons, etc. Je n'en vois pas
l'intérêt.
Tu fais les inversions des octets toi-même quand tu sérialise / désérialise
"Arnaud Debaene" <adebaene@club-internet.fr> writes:
Généralement, on définit un format, et à partir de là, le flux ne
contient que des octets, et je ne sais pas s'il y a un sens de parler
de BE/LE. (Dans la mésure où un seul octet ne suffit pas pour
transmettre un int, le format va sans doute parler de l'ordre des
octets.
...et donc va employer les termes big endian ou little endian, d'où
Et bien que je travaille sur des protocols de transmission depuis
longtemps, je ne me suis jamais servi de htons, etc. Je n'en vois pas
l'intérêt.
Tu fais les inversions des octets toi-même quand tu sérialise / désérialise
"Arnaud Debaene" writes:
Généralement, on définit un format, et à partir de là, le flux ne
contient que des octets, et je ne sais pas s'il y a un sens de parler
de BE/LE. (Dans la mésure où un seul octet ne suffit pas pour
transmettre un int, le format va sans doute parler de l'ordre des
octets.
...et donc va employer les termes big endian ou little endian, d'où
Et bien que je travaille sur des protocols de transmission depuis
longtemps, je ne me suis jamais servi de htons, etc. Je n'en vois pas
l'intérêt.
Tu fais les inversions des octets toi-même quand tu sérialise / désérialise
Bonjour a tous,
j'ai 2 programmes :
<snip>
Ma question est la suivante : est-ce que je dois creer une structure du cote
Java qui soit identique a la structure du cote C++ pour pouvoir la recuperer
correctement ? Ou est-ce que je peux recuperer cette structure dans un
tableau ?
je vais peut etre pas t'arranger et proposer autre chose que tout ce qui
Bonjour a tous,
j'ai 2 programmes :
<snip>
Ma question est la suivante : est-ce que je dois creer une structure du cote
Java qui soit identique a la structure du cote C++ pour pouvoir la recuperer
correctement ? Ou est-ce que je peux recuperer cette structure dans un
tableau ?
je vais peut etre pas t'arranger et proposer autre chose que tout ce qui
Bonjour a tous,
j'ai 2 programmes :
<snip>
Ma question est la suivante : est-ce que je dois creer une structure du cote
Java qui soit identique a la structure du cote C++ pour pouvoir la recuperer
correctement ? Ou est-ce que je peux recuperer cette structure dans un
tableau ?
je vais peut etre pas t'arranger et proposer autre chose que tout ce qui
James Kanze wrote:"Arnaud Debaene" writes:
Généralement, on définit un format, et à partir de là, le flux ne
contient que des octets, et je ne sais pas s'il y a un sens de
parler de BE/LE. (Dans la mésure où un seul octet ne suffit pas pour
transmettre un int, le format va sans doute parler de l'ordre des
octets.
...et donc va employer les termes big endian ou little endian, d'où
l'intérêt de connaître leur signification ;-)
Et bien que je travaille sur des protocols de transmission depuis
longtemps, je ne me suis jamais servi de htons, etc. Je n'en vois
pas l'intérêt.
Tu fais les inversions des octets toi-même quand tu sérialise /
désérialise des données?
James Kanze wrote:
"Arnaud Debaene" <adebaene@club-internet.fr> writes:
Généralement, on définit un format, et à partir de là, le flux ne
contient que des octets, et je ne sais pas s'il y a un sens de
parler de BE/LE. (Dans la mésure où un seul octet ne suffit pas pour
transmettre un int, le format va sans doute parler de l'ordre des
octets.
...et donc va employer les termes big endian ou little endian, d'où
l'intérêt de connaître leur signification ;-)
Et bien que je travaille sur des protocols de transmission depuis
longtemps, je ne me suis jamais servi de htons, etc. Je n'en vois
pas l'intérêt.
Tu fais les inversions des octets toi-même quand tu sérialise /
désérialise des données?
James Kanze wrote:"Arnaud Debaene" writes:
Généralement, on définit un format, et à partir de là, le flux ne
contient que des octets, et je ne sais pas s'il y a un sens de
parler de BE/LE. (Dans la mésure où un seul octet ne suffit pas pour
transmettre un int, le format va sans doute parler de l'ordre des
octets.
...et donc va employer les termes big endian ou little endian, d'où
l'intérêt de connaître leur signification ;-)
Et bien que je travaille sur des protocols de transmission depuis
longtemps, je ne me suis jamais servi de htons, etc. Je n'en vois
pas l'intérêt.
Tu fais les inversions des octets toi-même quand tu sérialise /
désérialise des données?
Michaël Delva wrote:Pour les détails, comme le problème BE/LE, je laisse d'autres
contributeurs te renseigner.
Qu'est-ce que c'est que ces problèmes de BE/LE? J'en ai déjà entendu
parler, mais je ne sais pas ce que c'est?
Big Endian / Littel Endian. Un nombre représenté sur plusieurs octets
peut l'être de 2 façons : soit avec l'octet de poids faible à
l'adresse la plus basse (little endian), soit avec l'octet de poids
fort à l'adresse la plus basse (big endian).
Différents processeurs utilisent l'une ou l'autre de ces conventions.
Si des machines avec des processeurs différents communiquent entre
elles, il faut en tenir compte.
Généralement, on utilise la convention Internet (Big Endian si je me
souviens bien) pour sérialiser les données,
et on utilise les fonctions htons, htonl, ntohs et ntohl pour passer
de la convention locale à la machine à la convention Internet et
vice-versa.
Sur une machine big endian, ces fonctions ne font rien mais sur un
machine little endian, elles inversent l'ordre des octets de leur
paramètre.
Michaël Delva wrote:
Pour les détails, comme le problème BE/LE, je laisse d'autres
contributeurs te renseigner.
Qu'est-ce que c'est que ces problèmes de BE/LE? J'en ai déjà entendu
parler, mais je ne sais pas ce que c'est?
Big Endian / Littel Endian. Un nombre représenté sur plusieurs octets
peut l'être de 2 façons : soit avec l'octet de poids faible à
l'adresse la plus basse (little endian), soit avec l'octet de poids
fort à l'adresse la plus basse (big endian).
Différents processeurs utilisent l'une ou l'autre de ces conventions.
Si des machines avec des processeurs différents communiquent entre
elles, il faut en tenir compte.
Généralement, on utilise la convention Internet (Big Endian si je me
souviens bien) pour sérialiser les données,
et on utilise les fonctions htons, htonl, ntohs et ntohl pour passer
de la convention locale à la machine à la convention Internet et
vice-versa.
Sur une machine big endian, ces fonctions ne font rien mais sur un
machine little endian, elles inversent l'ordre des octets de leur
paramètre.
Michaël Delva wrote:Pour les détails, comme le problème BE/LE, je laisse d'autres
contributeurs te renseigner.
Qu'est-ce que c'est que ces problèmes de BE/LE? J'en ai déjà entendu
parler, mais je ne sais pas ce que c'est?
Big Endian / Littel Endian. Un nombre représenté sur plusieurs octets
peut l'être de 2 façons : soit avec l'octet de poids faible à
l'adresse la plus basse (little endian), soit avec l'octet de poids
fort à l'adresse la plus basse (big endian).
Différents processeurs utilisent l'une ou l'autre de ces conventions.
Si des machines avec des processeurs différents communiquent entre
elles, il faut en tenir compte.
Généralement, on utilise la convention Internet (Big Endian si je me
souviens bien) pour sérialiser les données,
et on utilise les fonctions htons, htonl, ntohs et ntohl pour passer
de la convention locale à la machine à la convention Internet et
vice-versa.
Sur une machine big endian, ces fonctions ne font rien mais sur un
machine little endian, elles inversent l'ordre des octets de leur
paramètre.
"Arnaud Debaene" wrote in message
news:<411c8a03$0$18615$...Michaël Delva wrote:Pour les détails, comme le problème BE/LE, je laisse d'autres
contributeurs te renseigner.
[encore plus de détails... les reseaux et les protocols, c'est mon
domaine de prédélection]
Encore plus intéressant, C++ a des opérations
qu'il faut pour obtenir des bits qui correspond à une représentation
complément à deux, quelque soit la représentation utilisée par le
hardware -- regarde bien la sémantique des conversions signed vers
unsigned.
et on utilise les fonctions htons, htonl, ntohs et ntohl pour passer
de la convention locale à la machine à la convention Internet et
vice-versa.
Fonctions qui ne sont pas présentes sur toutes les implémentations C++.
"Arnaud Debaene" <adebaene@club-internet.fr> wrote in message
news:<411c8a03$0$18615$626a14ce@news.free.fr>...
Michaël Delva wrote:
Pour les détails, comme le problème BE/LE, je laisse d'autres
contributeurs te renseigner.
[encore plus de détails... les reseaux et les protocols, c'est mon
domaine de prédélection]
Encore plus intéressant, C++ a des opérations
qu'il faut pour obtenir des bits qui correspond à une représentation
complément à deux, quelque soit la représentation utilisée par le
hardware -- regarde bien la sémantique des conversions signed vers
unsigned.
et on utilise les fonctions htons, htonl, ntohs et ntohl pour passer
de la convention locale à la machine à la convention Internet et
vice-versa.
Fonctions qui ne sont pas présentes sur toutes les implémentations C++.
"Arnaud Debaene" wrote in message
news:<411c8a03$0$18615$...Michaël Delva wrote:Pour les détails, comme le problème BE/LE, je laisse d'autres
contributeurs te renseigner.
[encore plus de détails... les reseaux et les protocols, c'est mon
domaine de prédélection]
Encore plus intéressant, C++ a des opérations
qu'il faut pour obtenir des bits qui correspond à une représentation
complément à deux, quelque soit la représentation utilisée par le
hardware -- regarde bien la sémantique des conversions signed vers
unsigned.
et on utilise les fonctions htons, htonl, ntohs et ntohl pour passer
de la convention locale à la machine à la convention Internet et
vice-versa.
Fonctions qui ne sont pas présentes sur toutes les implémentations C++.
Ça marche sur toutes les machines où la taille d'un int est au moins 32
bits. Indépendamment de comment les int sont représentés dans la
machine.
Ça marche sur toutes les machines où la taille d'un int est au moins 32
bits. Indépendamment de comment les int sont représentés dans la
machine.
Ça marche sur toutes les machines où la taille d'un int est au moins 32
bits. Indépendamment de comment les int sont représentés dans la
machine.
writes:Ça marche sur toutes les machines où la taille d'un int est au moins
32 bits. Indépendamment de comment les int sont représentés dans la
machine.
Sauf si l'entier est sur plus de 32 bits, et que la valeur ne tient
pas sur les 32 bits. Je me demande alors : est-ce la responsabilité du
flux (d'après la philisophie des IOStreams standards) de vérifier
cela, ou serait-ce plutôt une précondition ?
kanze@gabi-soft.fr writes:
Ça marche sur toutes les machines où la taille d'un int est au moins
32 bits. Indépendamment de comment les int sont représentés dans la
machine.
Sauf si l'entier est sur plus de 32 bits, et que la valeur ne tient
pas sur les 32 bits. Je me demande alors : est-ce la responsabilité du
flux (d'après la philisophie des IOStreams standards) de vérifier
cela, ou serait-ce plutôt une précondition ?
writes:Ça marche sur toutes les machines où la taille d'un int est au moins
32 bits. Indépendamment de comment les int sont représentés dans la
machine.
Sauf si l'entier est sur plus de 32 bits, et que la valeur ne tient
pas sur les 32 bits. Je me demande alors : est-ce la responsabilité du
flux (d'après la philisophie des IOStreams standards) de vérifier
cela, ou serait-ce plutôt une précondition ?
writes:
Encore plus intéressant, C++ a des opérations
qu'il faut pour obtenir des bits qui correspond à une représentation
complément à deux, quelque soit la représentation utilisée par le
hardware -- regarde bien la sémantique des conversions signed vers
unsigned.
Tu veux dire que la norme parle de la représentation en complément à
deux ?
Mais je ne comprend pas pourquoi tu parles de conversions.
À part spécifier la représentation des entiers signés, je ne vois pas
pourquoi elle en parlerait. Et je trouverais bizarre qu'elle impose la
représentation des entiers signés.
Qu'en est-il, exactement ? Je ne peux malheureusement pas accéder à
ma copie de la norme, actuellement.
et on utilise les fonctions htons, htonl, ntohs et ntohl pour
passer de la convention locale à la machine à la convention
Internet et vice-versa.
Fonctions qui ne sont pas présentes sur toutes les implémentations C++.
Bof. S'il s'occupe de transmissions réseaux ...
kanze@gabi-soft.fr writes:
Encore plus intéressant, C++ a des opérations
qu'il faut pour obtenir des bits qui correspond à une représentation
complément à deux, quelque soit la représentation utilisée par le
hardware -- regarde bien la sémantique des conversions signed vers
unsigned.
Tu veux dire que la norme parle de la représentation en complément à
deux ?
Mais je ne comprend pas pourquoi tu parles de conversions.
À part spécifier la représentation des entiers signés, je ne vois pas
pourquoi elle en parlerait. Et je trouverais bizarre qu'elle impose la
représentation des entiers signés.
Qu'en est-il, exactement ? Je ne peux malheureusement pas accéder à
ma copie de la norme, actuellement.
et on utilise les fonctions htons, htonl, ntohs et ntohl pour
passer de la convention locale à la machine à la convention
Internet et vice-versa.
Fonctions qui ne sont pas présentes sur toutes les implémentations C++.
Bof. S'il s'occupe de transmissions réseaux ...
writes:
Encore plus intéressant, C++ a des opérations
qu'il faut pour obtenir des bits qui correspond à une représentation
complément à deux, quelque soit la représentation utilisée par le
hardware -- regarde bien la sémantique des conversions signed vers
unsigned.
Tu veux dire que la norme parle de la représentation en complément à
deux ?
Mais je ne comprend pas pourquoi tu parles de conversions.
À part spécifier la représentation des entiers signés, je ne vois pas
pourquoi elle en parlerait. Et je trouverais bizarre qu'elle impose la
représentation des entiers signés.
Qu'en est-il, exactement ? Je ne peux malheureusement pas accéder à
ma copie de la norme, actuellement.
et on utilise les fonctions htons, htonl, ntohs et ntohl pour
passer de la convention locale à la machine à la convention
Internet et vice-versa.
Fonctions qui ne sont pas présentes sur toutes les implémentations C++.
Bof. S'il s'occupe de transmissions réseaux ...
writes:
Encore plus intéressant, C++ a des opérations
qu'il faut pour obtenir des bits qui correspond à une représentation
complément à deux, quelque soit la représentation utilisée par le
hardware -- regarde bien la sémantique des conversions signed vers
unsigned.
Tu veux dire que la norme parle de la représentation en complément à
deux ?
Mais je ne comprend pas pourquoi tu parles de conversions.
À part spécifier la représentation des entiers signés, je ne vois pas
pourquoi elle en parlerait. Et je trouverais bizarre qu'elle impose la
représentation des entiers signés.
Qu'en est-il, exactement ? Je ne peux malheureusement pas accéder à
ma copie de la norme, actuellement.
et on utilise les fonctions htons, htonl, ntohs et ntohl pour
passer de la convention locale à la machine à la convention
Internet et vice-versa.
Fonctions qui ne sont pas présentes sur toutes les implémentations C++.
Bof. S'il s'occupe de transmissions réseaux ...
kanze@gabi-soft.fr writes:
Encore plus intéressant, C++ a des opérations
qu'il faut pour obtenir des bits qui correspond à une représentation
complément à deux, quelque soit la représentation utilisée par le
hardware -- regarde bien la sémantique des conversions signed vers
unsigned.
Tu veux dire que la norme parle de la représentation en complément à
deux ?
Mais je ne comprend pas pourquoi tu parles de conversions.
À part spécifier la représentation des entiers signés, je ne vois pas
pourquoi elle en parlerait. Et je trouverais bizarre qu'elle impose la
représentation des entiers signés.
Qu'en est-il, exactement ? Je ne peux malheureusement pas accéder à
ma copie de la norme, actuellement.
et on utilise les fonctions htons, htonl, ntohs et ntohl pour
passer de la convention locale à la machine à la convention
Internet et vice-versa.
Fonctions qui ne sont pas présentes sur toutes les implémentations C++.
Bof. S'il s'occupe de transmissions réseaux ...
writes:
Encore plus intéressant, C++ a des opérations
qu'il faut pour obtenir des bits qui correspond à une représentation
complément à deux, quelque soit la représentation utilisée par le
hardware -- regarde bien la sémantique des conversions signed vers
unsigned.
Tu veux dire que la norme parle de la représentation en complément à
deux ?
Mais je ne comprend pas pourquoi tu parles de conversions.
À part spécifier la représentation des entiers signés, je ne vois pas
pourquoi elle en parlerait. Et je trouverais bizarre qu'elle impose la
représentation des entiers signés.
Qu'en est-il, exactement ? Je ne peux malheureusement pas accéder à
ma copie de la norme, actuellement.
et on utilise les fonctions htons, htonl, ntohs et ntohl pour
passer de la convention locale à la machine à la convention
Internet et vice-versa.
Fonctions qui ne sont pas présentes sur toutes les implémentations C++.
Bof. S'il s'occupe de transmissions réseaux ...