PilgrimOfCode
Messages postés2Date d'inscriptionvendredi 22 juillet 2011StatutMembreDernière intervention24 juillet 2011
-
22 juil. 2011 à 19:29
PilgrimOfCode
Messages postés2Date d'inscriptionvendredi 22 juillet 2011StatutMembreDernière intervention24 juillet 2011
-
24 juil. 2011 à 20:54
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.
PilgrimOfCode
Messages postés2Date d'inscriptionvendredi 22 juillet 2011StatutMembreDernière intervention24 juillet 2011 24 juil. 2011 à 20:54
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é.