Salut
j'ai passé des heures pas de solution.
* dans la fonction si dessous de mon client si je supprime soit le Naming.lookup ou le Naming.rebind tout marche bien, mais si je les garde les deux il ya que le premier qui fonctionne et le 2émme lance une exception
java.rmi.ConnectIOException: error during JRMP connection establishment; nested exception is:
java.net.SocketTimeoutException: Read timed out
at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source)....
Merci d'avance.
public void connect(final String address, final int port,final String nickname) throws RemoteException {
// Initialisation des variables privees.
adresseClient = ChatConstants.CHAT;
adresseServeur = address;
portServeur = port;
utilisateur = nickname;
//creation du registre
if(!adresseClient.equals(adresseServeur)){
try{
System.out.println("new reg");
LocateRegistry.createRegistry(port);
}
catch(RemoteException re){
System.out.println("pb reg");
}
}
//Initialisation de l'adresse du client.
URL = ChatConstants.CHAT + utilisateur;
try {
Naming.rebind(this.getURL() , this); System.out.println(this.getNickname()+" userName in "+ this.getURL());
} catch (MalformedURLException e1) {
e1.printStackTrace();
}
// Recupere une reference pour le serveur de chat associe a cette adresse.
try {
chatServer = (RemoteChatServer)
Naming.lookup("rmi://" + adresseServeur+ "/" +ChatConstants.CHAT);
System.out.println("server OK");
} catch (MalformedURLException e1) {
e1.printStackTrace();
} catch (NotBoundException e1) {
e1.printStackTrace();
}
//Enregistrer le client distant au serveur de chat.
if(chatServer != null){
chatServer.connect(URL);
System.out.println("client saved");
}
// try {
// for(String s:Naming.list(adresseServeur+ "/" +ChatConstants.CHAT)){
// System.out.println(chatServer.getUsers()+ " --- "+s);
// }
// } catch (MalformedURLException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
System.out.println("ChatClient method connect called.");
}