Je veux transmettre par une Socket des octets tout bêtes, qui ont 256
valeurs possibles. A l'origine ils sont stockés dans une String.
J'ai essayé par plein de moyen (OutputStream.write(),
PrintWriter.write() ...) mais à chaque fois à l'arrivée j'ai des
erreurs dans ma transmission, à savoir que 2 octets sur 30 ne sont pas
les bons.
A l'arrivée j'ai aussi essayé plusieurs méthodes de lecture, mais
aucune n'a fonctionné correctement.
Comment faire pour envoyer et réceptionner des octets simples dans une
Socket ?
Merci d'avance pour votre aide,
Olivier
--
Olivier Ligny
Créateur web free-lance / www.cyber-tamtam.net
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Hervé AGNOUX
O.L. wrote:
Bonjour,
Je veux transmettre par une Socket des octets tout bêtes, qui ont 256 valeurs possibles. A l'origine ils sont stockés dans une String. J'ai essayé par plein de moyen (OutputStream.write(), PrintWriter.write() ...) mais à chaque fois à l'arrivée j'ai des erreurs dans ma transmission, à savoir que 2 octets sur 30 ne sont pas les bons. A l'arrivée j'ai aussi essayé plusieurs méthodes de lecture, mais aucune n'a fonctionné correctement.
Comment faire pour envoyer et réceptionner des octets simples dans une Socket ?
Merci d'avance pour votre aide, Olivier
Au niveau des octets, il n'y a jamais de problèmes d'encodage. C'est seulement pour les Strings, lors de la transformation entre String et octets.
Les problèmes d'encodage entre Strings surviennent en général lorsque deux machines communiquent, et qu'elles n'ont pas le même encodage par défaut. Pour qu'une communication de String fonctionne, il faut qu'il y ait le même encodage, pour le traitement concerné, entre les deux machines.
Lors du passage de String en octets et vice versa, il y a toujours un moyen de préciser l'encodage.
Par exemple, pour String -> octets : String.getBytes(String charsetName), et, pour octets -> String : new String(byte[] bytes, String charsetName).
Bonne chance.
-- Hervé AGNOUX http://www.diaam-informatique.com
O.L. wrote:
Bonjour,
Je veux transmettre par une Socket des octets tout bêtes, qui ont 256
valeurs possibles. A l'origine ils sont stockés dans une String.
J'ai essayé par plein de moyen (OutputStream.write(),
PrintWriter.write() ...) mais à chaque fois à l'arrivée j'ai des
erreurs dans ma transmission, à savoir que 2 octets sur 30 ne sont pas
les bons.
A l'arrivée j'ai aussi essayé plusieurs méthodes de lecture, mais
aucune n'a fonctionné correctement.
Comment faire pour envoyer et réceptionner des octets simples dans une
Socket ?
Merci d'avance pour votre aide,
Olivier
Au niveau des octets, il n'y a jamais de problèmes d'encodage. C'est
seulement pour les Strings, lors de la transformation entre String et
octets.
Les problèmes d'encodage entre Strings surviennent en général lorsque deux
machines communiquent, et qu'elles n'ont pas le même encodage par défaut.
Pour qu'une communication de String fonctionne, il faut qu'il y ait le même
encodage, pour le traitement concerné, entre les deux machines.
Lors du passage de String en octets et vice versa, il y a toujours un moyen
de préciser l'encodage.
Par exemple, pour String -> octets : String.getBytes(String charsetName),
et, pour octets -> String : new String(byte[] bytes, String charsetName).
Je veux transmettre par une Socket des octets tout bêtes, qui ont 256 valeurs possibles. A l'origine ils sont stockés dans une String. J'ai essayé par plein de moyen (OutputStream.write(), PrintWriter.write() ...) mais à chaque fois à l'arrivée j'ai des erreurs dans ma transmission, à savoir que 2 octets sur 30 ne sont pas les bons. A l'arrivée j'ai aussi essayé plusieurs méthodes de lecture, mais aucune n'a fonctionné correctement.
Comment faire pour envoyer et réceptionner des octets simples dans une Socket ?
Merci d'avance pour votre aide, Olivier
Au niveau des octets, il n'y a jamais de problèmes d'encodage. C'est seulement pour les Strings, lors de la transformation entre String et octets.
Les problèmes d'encodage entre Strings surviennent en général lorsque deux machines communiquent, et qu'elles n'ont pas le même encodage par défaut. Pour qu'une communication de String fonctionne, il faut qu'il y ait le même encodage, pour le traitement concerné, entre les deux machines.
Lors du passage de String en octets et vice versa, il y a toujours un moyen de préciser l'encodage.
Par exemple, pour String -> octets : String.getBytes(String charsetName), et, pour octets -> String : new String(byte[] bytes, String charsetName).
Bonne chance.
-- Hervé AGNOUX http://www.diaam-informatique.com
O.L.
O.L. wrote:
Bonjour,
Je veux transmettre par une Socket des octets tout bêtes, qui ont 256 valeurs possibles. A l'origine ils sont stockés dans une String. J'ai essayé par plein de moyen (OutputStream.write(), PrintWriter.write() ...) mais à chaque fois à l'arrivée j'ai des erreurs dans ma transmission, à savoir que 2 octets sur 30 ne sont pas les bons. A l'arrivée j'ai aussi essayé plusieurs méthodes de lecture, mais aucune n'a fonctionné correctement.
Comment faire pour envoyer et réceptionner des octets simples dans une Socket ?
Merci d'avance pour votre aide, Olivier
Au niveau des octets, il n'y a jamais de problèmes d'encodage. C'est seulement pour les Strings, lors de la transformation entre String et octets.
Les problèmes d'encodage entre Strings surviennent en général lorsque deux machines communiquent, et qu'elles n'ont pas le même encodage par défaut. Pour qu'une communication de String fonctionne, il faut qu'il y ait le même encodage, pour le traitement concerné, entre les deux machines.
Lors du passage de String en octets et vice versa, il y a toujours un moyen de préciser l'encodage.
Par exemple, pour String -> octets : String.getBytes(String charsetName), et, pour octets -> String : new String(byte[] bytes, String charsetName).
Bonne chance.
OK, merci pour ces précisions et ces exemples concrets :)
En fait je n'aurais pas du parler de String, car au départ les données sont le résultat d'un cryptage, donc elles sont d'abord stockées dans un tableau d'entiers puis dans une chaine hexadécimale puis dans une transcription en chaine de caractères. Mais pour éviter les problèmes d'encodage, je peux très bien zapper l'étape "chaine de caractère", et donc du coup j'ai juste besoin d'envoyer un tableau de byte ou d'entiers (0-255) sur ma Socket. Je vais retourner voir du côté de DataOutputStream ...
@+ Olivier
-- Olivier Ligny Créateur web free-lance / www.cyber-tamtam.net
O.L. wrote:
Bonjour,
Je veux transmettre par une Socket des octets tout bêtes, qui ont 256
valeurs possibles. A l'origine ils sont stockés dans une String.
J'ai essayé par plein de moyen (OutputStream.write(),
PrintWriter.write() ...) mais à chaque fois à l'arrivée j'ai des
erreurs dans ma transmission, à savoir que 2 octets sur 30 ne sont pas
les bons.
A l'arrivée j'ai aussi essayé plusieurs méthodes de lecture, mais
aucune n'a fonctionné correctement.
Comment faire pour envoyer et réceptionner des octets simples dans une
Socket ?
Merci d'avance pour votre aide,
Olivier
Au niveau des octets, il n'y a jamais de problèmes d'encodage. C'est
seulement pour les Strings, lors de la transformation entre String et
octets.
Les problèmes d'encodage entre Strings surviennent en général lorsque deux
machines communiquent, et qu'elles n'ont pas le même encodage par défaut.
Pour qu'une communication de String fonctionne, il faut qu'il y ait le même
encodage, pour le traitement concerné, entre les deux machines.
Lors du passage de String en octets et vice versa, il y a toujours un moyen
de préciser l'encodage.
Par exemple, pour String -> octets : String.getBytes(String charsetName),
et, pour octets -> String : new String(byte[] bytes, String charsetName).
Bonne chance.
OK, merci pour ces précisions et ces exemples concrets :)
En fait je n'aurais pas du parler de String, car au départ les données
sont le résultat d'un cryptage, donc elles sont d'abord stockées dans
un tableau d'entiers puis dans une chaine hexadécimale puis dans une
transcription en chaine de caractères. Mais pour éviter les problèmes
d'encodage, je peux très bien zapper l'étape "chaine de caractère", et
donc du coup j'ai juste besoin d'envoyer un tableau de byte ou
d'entiers (0-255) sur ma Socket.
Je vais retourner voir du côté de DataOutputStream ...
@+
Olivier
--
Olivier Ligny
Créateur web free-lance / www.cyber-tamtam.net
Je veux transmettre par une Socket des octets tout bêtes, qui ont 256 valeurs possibles. A l'origine ils sont stockés dans une String. J'ai essayé par plein de moyen (OutputStream.write(), PrintWriter.write() ...) mais à chaque fois à l'arrivée j'ai des erreurs dans ma transmission, à savoir que 2 octets sur 30 ne sont pas les bons. A l'arrivée j'ai aussi essayé plusieurs méthodes de lecture, mais aucune n'a fonctionné correctement.
Comment faire pour envoyer et réceptionner des octets simples dans une Socket ?
Merci d'avance pour votre aide, Olivier
Au niveau des octets, il n'y a jamais de problèmes d'encodage. C'est seulement pour les Strings, lors de la transformation entre String et octets.
Les problèmes d'encodage entre Strings surviennent en général lorsque deux machines communiquent, et qu'elles n'ont pas le même encodage par défaut. Pour qu'une communication de String fonctionne, il faut qu'il y ait le même encodage, pour le traitement concerné, entre les deux machines.
Lors du passage de String en octets et vice versa, il y a toujours un moyen de préciser l'encodage.
Par exemple, pour String -> octets : String.getBytes(String charsetName), et, pour octets -> String : new String(byte[] bytes, String charsetName).
Bonne chance.
OK, merci pour ces précisions et ces exemples concrets :)
En fait je n'aurais pas du parler de String, car au départ les données sont le résultat d'un cryptage, donc elles sont d'abord stockées dans un tableau d'entiers puis dans une chaine hexadécimale puis dans une transcription en chaine de caractères. Mais pour éviter les problèmes d'encodage, je peux très bien zapper l'étape "chaine de caractère", et donc du coup j'ai juste besoin d'envoyer un tableau de byte ou d'entiers (0-255) sur ma Socket. Je vais retourner voir du côté de DataOutputStream ...
@+ Olivier
-- Olivier Ligny Créateur web free-lance / www.cyber-tamtam.net
O.L.
Hervé AGNOUX a exposé le 27/10/2005 :
O.L. wrote:
Bonjour,
Je veux transmettre par une Socket des octets tout bêtes, qui ont 256 valeurs possibles. A l'origine ils sont stockés dans une String. J'ai essayé par plein de moyen (OutputStream.write(), PrintWriter.write() ...) mais à chaque fois à l'arrivée j'ai des erreurs dans ma transmission, à savoir que 2 octets sur 30 ne sont pas les bons. A l'arrivée j'ai aussi essayé plusieurs méthodes de lecture, mais aucune n'a fonctionné correctement.
Comment faire pour envoyer et réceptionner des octets simples dans une Socket ?
Merci d'avance pour votre aide, Olivier
Au niveau des octets, il n'y a jamais de problèmes d'encodage. C'est seulement pour les Strings, lors de la transformation entre String et octets.
Les problèmes d'encodage entre Strings surviennent en général lorsque deux machines communiquent, et qu'elles n'ont pas le même encodage par défaut. Pour qu'une communication de String fonctionne, il faut qu'il y ait le même encodage, pour le traitement concerné, entre les deux machines.
Lors du passage de String en octets et vice versa, il y a toujours un moyen de préciser l'encodage.
Par exemple, pour String -> octets : String.getBytes(String charsetName), et, pour octets -> String : new String(byte[] bytes, String charsetName).
Bonne chance.
Aaahhh ! Victoire : j'ai réussi, ça marche. J'ai utilisé DataOutputStream.writeChar(int) et DataInputStream.readChar(), mais pour arriver ensuite à trouver la bonne combinaison pour convertir un nombre en un bout de String, dur dur ! Je suis passé par un tableau d'entiers, et par une fonction de conversion int[] => String qui était incluse dans le script de cryptage.
Bonne continuation à tous ! Olivier
-- Olivier Ligny Créateur web free-lance / www.cyber-tamtam.net
Hervé AGNOUX a exposé le 27/10/2005 :
O.L. wrote:
Bonjour,
Je veux transmettre par une Socket des octets tout bêtes, qui ont 256
valeurs possibles. A l'origine ils sont stockés dans une String.
J'ai essayé par plein de moyen (OutputStream.write(),
PrintWriter.write() ...) mais à chaque fois à l'arrivée j'ai des
erreurs dans ma transmission, à savoir que 2 octets sur 30 ne sont pas
les bons.
A l'arrivée j'ai aussi essayé plusieurs méthodes de lecture, mais
aucune n'a fonctionné correctement.
Comment faire pour envoyer et réceptionner des octets simples dans une
Socket ?
Merci d'avance pour votre aide,
Olivier
Au niveau des octets, il n'y a jamais de problèmes d'encodage. C'est
seulement pour les Strings, lors de la transformation entre String et
octets.
Les problèmes d'encodage entre Strings surviennent en général lorsque deux
machines communiquent, et qu'elles n'ont pas le même encodage par défaut.
Pour qu'une communication de String fonctionne, il faut qu'il y ait le même
encodage, pour le traitement concerné, entre les deux machines.
Lors du passage de String en octets et vice versa, il y a toujours un moyen
de préciser l'encodage.
Par exemple, pour String -> octets : String.getBytes(String charsetName),
et, pour octets -> String : new String(byte[] bytes, String charsetName).
Bonne chance.
Aaahhh ! Victoire : j'ai réussi, ça marche.
J'ai utilisé DataOutputStream.writeChar(int) et
DataInputStream.readChar(), mais pour arriver ensuite à trouver la
bonne combinaison pour convertir un nombre en un bout de String, dur
dur ! Je suis passé par un tableau d'entiers, et par une fonction de
conversion int[] => String qui était incluse dans le script de
cryptage.
Bonne continuation à tous !
Olivier
--
Olivier Ligny
Créateur web free-lance / www.cyber-tamtam.net
Je veux transmettre par une Socket des octets tout bêtes, qui ont 256 valeurs possibles. A l'origine ils sont stockés dans une String. J'ai essayé par plein de moyen (OutputStream.write(), PrintWriter.write() ...) mais à chaque fois à l'arrivée j'ai des erreurs dans ma transmission, à savoir que 2 octets sur 30 ne sont pas les bons. A l'arrivée j'ai aussi essayé plusieurs méthodes de lecture, mais aucune n'a fonctionné correctement.
Comment faire pour envoyer et réceptionner des octets simples dans une Socket ?
Merci d'avance pour votre aide, Olivier
Au niveau des octets, il n'y a jamais de problèmes d'encodage. C'est seulement pour les Strings, lors de la transformation entre String et octets.
Les problèmes d'encodage entre Strings surviennent en général lorsque deux machines communiquent, et qu'elles n'ont pas le même encodage par défaut. Pour qu'une communication de String fonctionne, il faut qu'il y ait le même encodage, pour le traitement concerné, entre les deux machines.
Lors du passage de String en octets et vice versa, il y a toujours un moyen de préciser l'encodage.
Par exemple, pour String -> octets : String.getBytes(String charsetName), et, pour octets -> String : new String(byte[] bytes, String charsetName).
Bonne chance.
Aaahhh ! Victoire : j'ai réussi, ça marche. J'ai utilisé DataOutputStream.writeChar(int) et DataInputStream.readChar(), mais pour arriver ensuite à trouver la bonne combinaison pour convertir un nombre en un bout de String, dur dur ! Je suis passé par un tableau d'entiers, et par une fonction de conversion int[] => String qui était incluse dans le script de cryptage.
Bonne continuation à tous ! Olivier
-- Olivier Ligny Créateur web free-lance / www.cyber-tamtam.net