[C++ et Java] Communication par socket

Communication par socket [C++ et Java] - C++ - Programmation

Marsh Posté le 30-03-2007 à 16:18:10    

Bonjour,
 
J'ai fait une recherche rapide sans rien trouvé qui m'aide...
 
Je dispose d'un serveur écrit en Java qui utilise des DataOutputStream et DataInputStream pour envoyer/recevoir des données à l'aide de méthodes telles que writeUTF, writeInt, readUTF ou readInt....
 
Je dois développer un client en C++ sous windows pouvant communiquer avec ce serveur par socket TCP. J'ai assez logiquement un petit problème de format, alors existe t'il un moyen simple de recevoir les données envoyées par le serveur Java correctement formatées et d'envoyer des données compréhensibles par le serveur Java ?
 
Merci pour toute réponse.

Reply

Marsh Posté le 30-03-2007 à 16:18:10   

Reply

Marsh Posté le 02-04-2007 à 10:31:21    

Nobody ?  :(

Reply

Marsh Posté le 02-04-2007 à 10:45:46    

c'est quoi exactement ce problème de format ?


---------------
Töp of the plöp
Reply

Marsh Posté le 02-04-2007 à 15:13:19    

Ben en fait j'ai bêtement besoin de récupérer les caractères accentués envoyés par le serveur Java et j'y arrive pas.
 
S'agirait il de forcer Java à utiliser de l'UTF-32 afin de construire une wstring ?
 
Ca me gave les caractères accentués et autres chiottes :o Tout le monde ne pourrait il pas communiquer uniquement à l'aide caractères ASCII ? :o

Reply

Marsh Posté le 02-04-2007 à 15:14:44    

La méthode writeUTF des DataOutputStream Java envoit par la socket un short donnant la taille du message puis le message, mais visiblement codé en UTF-8... et je galère....

Reply

Marsh Posté le 02-04-2007 à 15:15:41    

et t'as quoi coté c++ pour relire ça ?


---------------
Töp of the plöp
Reply

Marsh Posté le 02-04-2007 à 15:15:58    

wxWidget et ses wxString permettent de décoder sans pb l'utf :o


---------------
Töp of the plöp
Reply

Marsh Posté le 02-04-2007 à 15:28:39    

De l'autre côté j'ai du code maison à la main (donc pourrave), je reçois via la méthode recv de mes socket dans un tableau de char.

Reply

Marsh Posté le 02-04-2007 à 15:29:48    

ben deja ptetre qu'il te faudrait un TCHAR ou wchar_t , activer l'unicode codé c++ etc, selon ton environnement de dev.


---------------
Töp of the plöp
Reply

Marsh Posté le 02-04-2007 à 15:35:48    

Certes, je subodorais naïvement pouvoir reconstituer un wchar_t à l'aide de deux char que je reçois, mais ça semble compromis.

Reply

Marsh Posté le 02-04-2007 à 15:35:48   

Reply

Marsh Posté le 02-04-2007 à 15:36:58    

t'es sous quel environnement ?


---------------
Töp of the plöp
Reply

Marsh Posté le 02-04-2007 à 15:37:48    

VisualStudio

Reply

Marsh Posté le 02-04-2007 à 15:45:57    

Il faut que tu définisses _UNICODE dans les settings du projet, du côté du préprocesseur, ensuite tu peux passer par les TCHAR, qui sont des alias vers chat ou wchar_t. Bon après faut être prudent avec les tailles de chaine, etc, le mieux étant donc d'utiliser un outils comme wxwidget; ptetre que boost le fait aussi j'en sais rien, ca vaut le coup d'y jetter un oeil, les problématiques d'unicode sont pas super évidentes.


---------------
Töp of the plöp
Reply

Marsh Posté le 02-04-2007 à 15:46:25    

(y'a aussi pas mal de doc du côté de codeprojet, ou codeguru)


Message édité par _darkalt3_ le 02-04-2007 à 15:46:33

---------------
Töp of the plöp
Reply

Marsh Posté le 02-04-2007 à 15:48:26    

Ok merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed