Partage
  • Partager sur Facebook
  • Partager sur Twitter

Client/Serveur en Java

    30 novembre 2015 à 23:23:43

    Bonjour,

    J'essaye de programmer un petit morceau de code en java, qui permettrait à 2 pc de communiquer entre eux. On nous avait appris le client/serveur à l'iut, j'ai donc repris ce code. Le problème c'est qu'il fonctionne très bien en local, mais des que je veux joindre le pc d'un ami, qui n'est pas dans mon réseau privé, il ne fonctionne pas.

    J'ai cherché des explications, et je suis tombé sur le NAT, j'ai donc été dans ma SFRBox pour ajouter une règle dans Traduction d'adresse. J'ai redirigié le port externe Y vers le port internet Y (même numéro) et j'ai mis l'ip X.X.X.X du réseau privé de ma machine. Du coup j'ai donné à mon ami l'adresse publique Z.Z.Z.Z, et il la écrit dans le code client. Je pensais que si le message était envoyé a Z.Z.Z.Z au port Y, le NAT allait ensuite l'envoyer a la machine X.X.X.X de port Y aussi. Cependant, ceci ne fonctionne pas, je ne sais pas si mon raisonnement est correcte, si c'est seulement du au nat, etc. Il m'envoit les messages depuis un pc windows, et la partie serveur est sur un pc linux. Quelqu'un pourrait il m'éclairer s'il vous plait?

    Voici la partie cliente:

    import java.net.*;
    import java.io.*;
    
    class clientTCP{
    	
    	public static void main(String[] args){
    		clientTCP c=new clientTCP();
    		}
    	
    	public clientTCP(){
    		try{
    		Socket socket=new Socket("Z.Z.Z.Z",Y);
    		PrintWriter writer = new PrintWriter(socket.getOutputStream());
    		writer.println("Envoi d'un message ultra confidentiel");
    		writer.flush();
    		}
    		catch(Exception e){
    			e.printStackTrace();
    			}
    		}
    	
    	
    	
    	
    	
    	
    	}
    

    Voici la partie serveur

    import java.net.*;
    import java.io.*;
    
    class serveurTCP{
    	
    	public static void main(String [] args){
    		serveurTCP s=new serveurTCP();
    	}
    	
    	
    	public serveurTCP(){
    		try{
    			ServerSocket serveur=new ServerSocket(Y);
    			while(true){
    				Socket client=serveur.accept();
    				String message ="";
    				System.out.println("Connexion avec : "+client.getInetAddress());
    				InputStreamReader stream=new InputStreamReader(client.getInputStream());
    				BufferedReader in=new BufferedReader(stream);
    				message=in.readLine();
    				System.out.println(message);
    				client.close();
    			}
    		}catch(Exception e){
    			e.printStackTrace();
    			}
    		
    	}
    	
    	
    	
    	
    	
    	
    	
    	}
    




    • Partager sur Facebook
    • Partager sur Twitter
      2 décembre 2015 à 9:49:01

      Bonjour, je voudrait daire la meme chose mais en locla seulement , aufait mon aps devrait servir à s'envoyer des messages dans un réseau local. je suis programmeur ,java. peut tu m'aider déjà en me disant par ou commencer?
      • Partager sur Facebook
      • Partager sur Twitter

      Client/Serveur en Java

      × 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