Communication entre deux machines distantes

imenhmd
Messages postés
1
Date d'inscription
jeudi 24 novembre 2016
Statut
Membre
Dernière intervention
24 novembre 2016
- Modifié par BunoCS le 24/11/2016 à 17:04
Bonjour :) ,
Je veux connecter deux machines distantes en utlisant le modèle client/serveur, donc, je veux créer une application telsque par exemple :

serveur : bonjour
client : if msg reçu de serveur = bonjour
msg de client = bonjour
else msg de client = merci

telsque l'échange de données doit être ilimitée ,

merci d'avance
code de client :


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.*;
import java.util.*;

 public class client2 {

  public static void main(String[] args) {
        
        final Socket clientSocket;
        final BufferedReader in;
        final PrintWriter out;
        final Scanner sc = new Scanner(System.in);//pour lire à partir du clavier
    
        try {
           /*


* les informations du serveur ( port et adresse IP ou nom d'hote

* 169.254.2.144 est l'adresse local de la machine

*/
           clientSocket = new Socket("169.254.2.144",41);
           //flux pour envoyer
           out = new PrintWriter(clientSocket.getOutputStream());
           //flux pour recevoir
           in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
     
           Thread envoyer = new Thread(new Runnable() {
               String msg ;
              // String msggg ; 
                  String   msg1 = in.readLine();
               // println ( msg1 ); 

                @Override
                public void run() {
                  while(true){
                   if ( msg1.equals("bonjour")== true)
                   {
                     System.out.println(msg1);

                   msg.equals( " cv bien et toi") ; 
                     System.out.println( " cv bien et toi"); 
 
                    }
                   else 
                   { msg.equals( "merci") ;  }               
                   //out.println("client : bonjour serveur ") ; 
                   msg = sc.nextLine();
                    out.println(msg);  
                    out.flush();
                  }
               }
           });
           envoyer.start();
           
  //*************************************************************************************
       
           
      
           Thread recevoir = new Thread(new Runnable() {
               String msg;
               @Override
               public void run() {
                  try {
                    msg = in.readLine();
                    while(msg!=null){
                       System.out.println("Serveur : "+msg);
                       msg = in.readLine();
                    }
                    System.out.println("Serveur déconecté");
                    out.close();
                    clientSocket.close();
                  } catch (IOException e) {
                      e.printStackTrace();
                  }
               }
           });
           recevoir.start();
     
        } catch (IOException e) {
             e.printStackTrace();
        }
    }
  }



et le code du serveur :

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.*;
import java.util.*;

 public class client2 {

  public static void main(String[] args) {
        
        final Socket clientSocket;
        final BufferedReader in;
        final PrintWriter out;
        final Scanner sc = new Scanner(System.in);//pour lire à partir du clavier
    
        try {
           /*


* les informations du serveur ( port et adresse IP ou nom d'hote

* 169.254.2.144 est l'adresse local de la machine

*/
           clientSocket = new Socket("169.254.2.144",41);
           //flux pour envoyer
           out = new PrintWriter(clientSocket.getOutputStream());
           //flux pour recevoir
           in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
     
           Thread envoyer = new Thread(new Runnable() {
               String msg ;
              // String msggg ; 
                  String   msg1 = in.readLine();
               // println ( msg1 ); 

                @Override
                public void run() {
                  while(true){
                   if ( msg1.equals("bonjour")== true)
                   {
                     System.out.println(msg1);

                   msg.equals( " cv bien et toi") ; 
                     System.out.println( " cv bien et toi"); 
 
                    }
                   else 
                   { msg.equals( "merci") ;  }               
                   //out.println("client : bonjour serveur ") ; 
                   msg = sc.nextLine();
                    out.println(msg);  
                    out.flush();
                  }
               }
           });
           envoyer.start();
           
  //*************************************************************************************
       
           
      
           Thread recevoir = new Thread(new Runnable() {
               String msg;
               @Override
               public void run() {
                  try {
                    msg = in.readLine();
                    while(msg!=null){
                       System.out.println("Serveur : "+msg);
                       msg = in.readLine();
                    }
                    System.out.println("Serveur déconecté");
                    out.close();
                    clientSocket.close();
                  } catch (IOException e) {
                      e.printStackTrace();
                  }
               }
           });
           recevoir.start();
     
        } catch (IOException e) {
             e.printStackTrace();
        }
    }
  }

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ICI

Merci d'y penser dans tes prochains messages.