TOUT -|- TOUT sur le visuel -|- TOUT sur la logistique
Date sent: Thu, 18 Jan 2001 11:12:30 +0100
From: "Alain Aïtoulha" <Alain.Aitoulha@ln.cit.alcatel.fr>
Organization: Alcatel
To: java@u-strasbg.fr
Subject: Client(java)/Server(Visual C++) application
Send reply to: java@u-strasbg.fr
Bonjour la liste,
Je cherche à faire communiquer via un socket TCP/IP un client java et un
serveur ecrit en Visual C++. Le serveur utilise Winsock2 et notamment la
classe CSocket/MFC. J'ai fait une implémentation avec un socket et les
streams côté java. Le client se connecte bien au serveur mais lorsqu'il
envoi un message, le serveur se plante. Si quelqu'un a travaillé dans ce
genre de contexte, je suis interessé, surtout au niveau du code java
client. Merci. A.Aïtoulha
Date sent: Thu, 18 Jan 2001 11:14:39 +0100
From: Nicolas Hognon <nicolash@virtools.com>
Organization: Virtools
To: java@u-strasbg.fr
Subject: Re: Client(java)/Server(Visual C++) application
Send reply to: java@u-strasbg.fr
je l'ai jamais fait mais tu as peut etre un probleme d'alignement
de octet.
car java doit se mettre en big endian (ou l'inverse) alors que sur ton pc
tu es en little endian (ou l'inverse je sais jamais).
> Je cherche à faire communiquer via un socket TCP/IP un client java et un
> serveur ecrit en Visual C++. Le serveur utilise Winsock2 et notamment la
> classe CSocket/MFC. J'ai fait une implémentation avec un socket et les
> streams côté java. Le client se connecte bien au serveur mais lorsqu'il
> envoi un message, le serveur se plante. Si quelqu'un a travaillé dans ce
> genre de contexte, je suis interessé, surtout au niveau du code java
> client.
--
Nicolas Hognon
nicolash@virtools.com
Virtools - The Behavior Company
Tel. (+33) 1 42 71 46 86 / Fax. (+33) 1 42 71 86 53
http://www.virtools.com/
Date sent: Thu, 18 Jan 2001 11:27:33 +0100
From: "Alain Aïtoulha" <Alain.Aitoulha@ln.cit.alcatel.fr>
Organization: Alcatel
To: java@u-strasbg.fr
Subject: Re: Client(java)/Server(Visual C++) application
Send reply to: java@u-strasbg.fr
Nicolas Hognon wrote:
> je l'ai jamais fait mais tu as peut etre un probleme d'alignement
> de octet.
> car java doit se mettre en big endian (ou l'inverse) alors que sur ton
> pc tu es en little endian (ou l'inverse je sais jamais).
Merci Nicolas mais c'est quoi le levier côté java pour se configurer en
little ou big endian ? Alain
>
>
> > Je cherche à faire communiquer via un socket TCP/IP un client java et
> > un serveur ecrit en Visual C++. Le serveur utilise Winsock2 et
> > notamment la classe CSocket/MFC. J'ai fait une implémentation avec un
> > socket et les streams côté java. Le client se connecte bien au serveur
> > mais lorsqu'il envoi un message, le serveur se plante. Si quelqu'un a
> > travaillé dans ce genre de contexte, je suis interessé, surtout au
> > niveau du code java client.
>
> --
> Nicolas Hognon
> nicolash@virtools.com
>
> Virtools - The Behavior Company
> Tel. (+33) 1 42 71 46 86 / Fax. (+33) 1 42 71 86 53
> http://www.virtools.com/
From: Olivier Dedieu <Olivier.Dedieu@inria.fr>
Date sent: Thu, 18 Jan 2001 11:37:04 +0100 (MET)
To: java@u-strasbg.fr
Subject: Re: Client(java)/Server(Visual C++) application
Send reply to: Olivier.Dedieu@inria.fr
> Nicolas Hognon wrote:
>
> > je l'ai jamais fait mais tu as peut etre un probleme d'alignement de
> > octet. car java doit se mettre en big endian (ou l'inverse) alors que
> > sur ton pc tu es en little endian (ou l'inverse je sais jamais).
>
> Merci Nicolas mais c'est quoi le levier côté java pour se configurer en
> little ou big endian ?
En java c'est forcement big endian. Tu peux toujours essayer d'écrire un
convertisseur a la main (c'est juste qque lignes de manipulation
d'octets.) Mais théoriquement qd on écrit proprement un appli réseau en C
(ou C++) on utilise les fonction htonl() et ntohl() pour faire les
conversions d'encodage host -> network. Or le 'network' est en big endian
(du fait que les sparc sont en big endian et que tout ca vient des Sun
RPC). Donc, si c'est possible regarde du coté du serveur C++ si il
utilise bien ce mécanisme.
a+
---------------------------------------------------------------
Olivier Dedieu - (INRIA - Bull / WebTools - Pharos)
Web: http://www-sor.inria.fr/~dedieu
JavaChannel: http://www.java-channel.org/
Pharos team: http://webtools.dyade.fr/pharos/
---------------------------------------------------------------
Date sent: Thu, 18 Jan 2001 11:41:02 +0100
From: Nicolas Hognon <nicolash@virtools.com>
Organization: Virtools
To: java@u-strasbg.fr
Subject: [HS] Re: Client(java)/Server(Visual C++) application
Send reply to: java@u-strasbg.fr
bon la on est un peu hors sujet mais je reponds quand meme sur la liste du
cote java tu ne peux pas changer. c'est du cote c++ que tu peux faire
quelquechose. regarde les fonctions htonl (Host To Network Long), htons
(Host To Network Short), ntohl (Network To Host Long), ntohs (Network To
Host Short)
elle te permette de convertir ce qui vient du reseau dans l'alignement
local et inversement.
mais je suis pas sur que ton probleme viennent de la.
c'est fonction te serviront a lire correctement ce que tu recois
sur le reseau. mais si tu dis que ton programme crash lors de la
connection le probleme vient peut etre d'ailleurs.
normalement tu devrais connaitre une de ces fonctions car quand tu set le
port de ton internet address tu fais quelquechose dans le genre :
m_SocketAddress.sin_port = htons(port);
quoi que si tu utilises MFC peut etre que tu n'as pas tout ca a faire. je
te conseillerais d'utiliser winsock a la main sans mfc :))
> Merci Nicolas mais c'est quoi le levier côté java pour se configurer en
>
> little ou big endian ?
>
--
Nicolas Hognon
nicolash@virtools.com
Virtools - The Behavior Company
Tel. (+33) 1 42 71 46 86 / Fax. (+33) 1 42 71 86 53
http://www.virtools.com/
Date sent: Thu, 18 Jan 2001 11:15:10 +0000
From: Abdessamad Moatassime <abdessamad.moatassime@ra.cit.alcatel.fr>
To: java@u-strasbg.fr
Subject: Re: Client(java)/Server(Visual C++) application
Send reply to: java@u-strasbg.fr
Si c'est le serveur C++ qui se plante c'est que le pb est coté C++ et non
cote Java.
As-tu bien codé tes sockets coté C++ ?
Je rappeles qu'il faut :
créer la socket via socket()
binding the name to the socket par bind()
ecouter les events via listen()
et récuperer les donées reçues par la socket via accept()
"Alain Aïtoulha" a écrit :
> Bonjour la liste,
> Je cherche à faire communiquer via un socket TCP/IP un client java et un
> serveur ecrit en Visual C++. Le serveur utilise Winsock2 et notamment la
> classe CSocket/MFC. J'ai fait une implémentation avec un socket et les
> streams côté java. Le client se connecte bien au serveur mais lorsqu'il
> envoi un message, le serveur se plante. Si quelqu'un a travaillé dans ce
> genre de contexte, je suis interessé, surtout au niveau du code java
> client. Merci. A.Aïtoulha