Client-server avec DatagramSocket et adresse IP publique [Résolu]

Signaler
Messages postés
2
Date d'inscription
vendredi 22 juillet 2011
Statut
Membre
Dernière intervention
24 juillet 2011
-
Messages postés
2
Date d'inscription
vendredi 22 juillet 2011
Statut
Membre
Dernière intervention
24 juillet 2011
-
Bonjour à tous,

Je me casse la tête depuis deux jours déjà sur la création d'une application java client-server avec les datagramsocket. En fait, j'arrive à échanger des données entre mon client et mon server quand l'adresse de mon server se situe dans le réseau local.
Lorsque j'essaye d'envoyer des données à mon server depuis internet (en utilisant mon ip publique pour le server), rien ne semble passer. J'ai donc tenté de modifier les paramètres de mon routeur afin de rediriger les communications entrant sur le port 8080 vers l'adresse privée de mon routeur. Ca n'a pas marché!

Voici le code du server
public class Server {

/**
 * @param args
 */
public static void main(String[]args){

String text;
byte[]tampon = new byte[2000];

try
  {
DatagramSocket socket = new DatagramSocket(8084);
    while(true)
{

DatagramPacket dg = new DatagramPacket(tampon,tampon.length);
socket.receive(dg);
text = new String(dg.getData(),0,0,dg.getLength());
if(text.equals("bye"))
  break;
System.out.println("*************************");
System.out.println( text);
System.out.println("*************************");
}
}
   catch(SocketException e )
{
System.err.println("Le serveur existe déjà ! " + e);;
e.printStackTrace();
}	

catch(IOException e)
{
System.err.println( e);;		
}	

}


Voici le code du client

package Main;

import java.net.*;
import java.io.*;

class Client{

public static void main(String[]args)
{
DataInputStream clavier = new DataInputStream(System.in);
String text,ip;
int port = 8084;
try
{
    DatagramSocket socket = new DatagramSocket();  
while(true)
{
text = clavier.readLine();
byte[] donnee = new byte[text.length()];
if(text.equals("Exit"))
  break;
text.getBytes(0,text.length(),donnee,0);
InetAddress dist = InetAddress.getByName("88.147.75.33");
DatagramPacket dg = new DatagramPacket(donnee,donnee.length,dist,port);
socket.send(dg);					
}
socket.close();
}	
catch(Exception io)
{
//System
}	

}

}


Merci à tous ceux qui prendront le temps de jetter un coup d'oeil à mon problème. Et encore plus a ceux qui répondront.

1 réponse

Messages postés
2
Date d'inscription
vendredi 22 juillet 2011
Statut
Membre
Dernière intervention
24 juillet 2011

Finalement il y a pas de problème. C'était du au fait que je tentais d'envoyer les messages a travers internet depuis le réseau de destination. Le routeur ne considérais donc pas le message comme venant de l'internet et ne le renvoyais donc pas vers le pc souhaité.

Merci qd même.
& Joyeux codage à tous!