Partage
  • Partager sur Facebook
  • Partager sur Twitter

Communication avec un serveur

Sujet résolu
    19 janvier 2011 à 18:20:44

    Bonjour à tous. Je cherche de l'aide pour réaliser un TP donné en cours à propos des serveurs.
    On nous fourni le fichier .class qui correspond à un serveur et c'est à nous de l'interroger en réalisant un Client.
    Biensure nous n'avons aucune information sur son contenu.

    J'ai réussi à écrire un Client mais celui-ci ne reçoit qu'une seule réponse du serveur : "Entrez votre ordre..."
    Ma question est donc : Comment obtenir plus d'informations.

    Voilà le procédé de communication :
    final int SQUARE_PORT = 11111; 
    		Socket s = new Socket("localhost", SQUARE_PORT); 
    		InputStream in = s.getInputStream(); 
    		OutputStream out = s.getOutputStream(); 
    		BufferedReader reader = new BufferedReader(new InputStreamReader(in)); 
    		PrintWriter writer = new PrintWriter(out);
    		
    		System.out.println("Server : " + reponse);
    		String commande = "1 \n";
    		System.out.print("Saisie : " + commande);
    		writer.print(commande);
    		writer.flush(); 
    		String reponse = reader.readLine(); 
    		System.out.println("Recu : " + reponse);
    


    Merci bien.
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      19 janvier 2011 à 22:03:26

      Bonsoir,

      via la décompilation du code, en utilisant l'instrospection.
      • Partager sur Facebook
      • Partager sur Twitter
        20 janvier 2011 à 8:05:46

        Je cherchais un moyen disons... légal de trouver le contenu du serveur.
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          20 janvier 2011 à 23:40:17

          l'introspection est un moyen légal, avoir la javadoc, demander à ton prof le protocol, faire de l'analyse de trame, envoyer une commande: aide ou help.

          Après tu ne peux pas deviner le protocol comme ca. Quels sont les derniers cours que tu as faits ? Essai de te servir des connaissances java que tu as pu acquérir.
          • Partager sur Facebook
          • Partager sur Twitter
            21 janvier 2011 à 18:39:34

            En fait un simple telnet me permettait de savoir ce que voulait le serveur : telnet localhost <port>.
            Ensuite pour le code, une boucle qui lis d'abord la réponse du serveur et ensuite qui lis la commande envoyée par BufferedReader.

            String reponse = ""; 
            		String commande = "";
            		
            		while (!(commande).equals('q')){
            			
            			// lire la reponse du serveur
            			reponse = reader.readLine(); 
            			System.out.println("Recu : " + reponse);
            			
            			// lire la commande de l'utilisateur
            			commande = br.readLine() + "\n"; // le saut de ligne n'est pas intégré au readLine()
            			System.out.print("Envoi : " + commande); 
            			
            			// envoyer les données au serveur
            			writer.print(commande); 
            			writer.flush();
                            }
            


            Merci pour l'aide quand même.
            À propos de l'introspection, ça à l'air assez complexe ?
            • Partager sur Facebook
            • Partager sur Twitter

            Communication avec un serveur

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown