IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

[servlet]application client/serveur


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2005
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2005
    Messages : 84
    Par défaut [servlet]application client/serveur
    Bonjour!

    Je ne sais pas si c'est le meilleur forum pour poser ma question, je l'éspère.

    je veux faire communiquer une servlet http et une application Visual C++ en utilisant une communication par socket.
    J'ai testé la communication par socket avec un client et un serveur Visual C++.
    J'ai testé la communication par socket avec un client et un serveur Java, ça marche aussi.
    Mais un client Visual C++ (resp. Java) et un serveur Java (resp. Visual C++) ne fonctionne pas.

    les sockets java et les sockets windows ne seraient-ils pas compatibles?

  2. #2
    Membre Expert
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Par défaut
    Si si c'est compatible, mais pourquoi parles tu de servlet ?

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2005
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2005
    Messages : 84
    Par défaut
    Parce que j'ai une servlet qui reçoit des requêtes http émanant de clients mobiles J2ME, et qui les envoient à un serveur fixe Visual C++ en utilisant des sockets.
    la servlet doit aussi achminer les réponses dans l'autre sens c-à-d du serveur fixe vers le client mobile.

  4. #4
    Membre confirmé
    Inscrit en
    Septembre 2005
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2005
    Messages : 84
    Par défaut
    En fait, la partie de code interessante côté client java est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
          try
    		{
    		Socket  conn = new  Socket("127.0.0.1",60);
     
    		DataOutputStream  dis = new  DataOutputStream(conn.getOutputStream());
     
    		dis.writeUTF("je suis le client");
     
    		dis.close();
    		}
    		catch (IOException e)
    		{
    			System.out.println("Une erreur s'est poduite");
    		}
    et côté serveur Visual C++
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
           CSocket  receiveSocket;
    	char   Buffer[100];
    	receiveSocket.Create(60,SOCK_DGRAM,"127.0.0.1");
    	receiveSocket.Receive(Buffer,100,0);
    	CString  ch;
    	ch = "j'ai reçu : ";
    	ch += Buffer;
    	AfxMessageBox(ch);

  5. #5
    Membre Expert
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Par défaut
    Ferme la socket ou flush la. Mais sinon je ne vois pas de probleme particulié dans le code. Tu ne recois pas d'exception ?


    Et la partie C++ marche bien ?
    Tu es bien admin sur ta machine parce que le port 60 n'est autorisé que pour les admins (<1024).

    Une remarque cependant la socket C++ est ouverte en mode datagramme UDP je crois pour faire la même chose en java il faut utiliser java.net.DatagramSocket.

    Pourquoi utiliser udp et non tcp :
    Pour autent que je sache l'utilité c'est d'économiser le traffic réseau.

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 105
    Par défaut
    Bonjour

    Je ne suis pas un expert MFC mais vu le nom de la constante SOCK_DGRAM dans le create du serveur, je parie sur une socket Datagram (UDP) or en java, le constructeur que tu utilises crée une Socket de type stream (TCP).
    C'est normal que cela ne marche pas.

    Utilise la classe DatagramSocket.

    Cordialement

  7. #7
    Membre confirmé
    Inscrit en
    Septembre 2005
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2005
    Messages : 84
    Par défaut
    Merci à tout le monde.
    Il est vrai que le problème provenait du fait que j'utilisais d'un côté TCP et de l'autre UDP, j'ai changé côté client Java par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    try
    		{
    			String  ch = new String("je suis le client");
    			byte  Buffer[] = ch.getBytes();
    			DatagramSocket	conn = new DatagramSocket(5050);
    			InetAddress      serveur = InetAddress.getByName("127.0.0.1");
    			DatagramPacket	don = new DatagramPacket(Buffer,Buffer.length,serveur,5000);
    						conn.send(don);
    		}
    		catch (IOException e)
    		{
    			System.out.println("Une erreur s'est poduite");
    		}
    et maintenant ça marche.
    encore Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Free Pascal] Application client/serveur en Pascal
    Par zouzou_zaza dans le forum Free Pascal
    Réponses: 15
    Dernier message: 02/09/2004, 17h57
  2. [Débutant] Application client serveur
    Par dk dans le forum Plateformes (Java EE, Jakarta EE, Spring) et Serveurs
    Réponses: 7
    Dernier message: 30/06/2004, 11h38
  3. Choix port pour application client-serveur
    Par Tiaps dans le forum Développement
    Réponses: 7
    Dernier message: 15/03/2004, 09h49
  4. Réponses: 2
    Dernier message: 01/10/2002, 12h25
  5. Langage le mieux adapté pour application client serveur ?
    Par guenus dans le forum Débats sur le développement - Le Best Of
    Réponses: 4
    Dernier message: 17/06/2002, 15h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo