Hallo!
Ich habe via rmi eine Client-Server-Applikation geschrieben und gleich als erstes dass Port-Forwarding (war bei meinem Router unter dem Punkt "Virtual Server" zu finden) eingerichtet.
Dass Funktioniert auch alles wunderbar nur dass der Server beim zweiten Start nicht mehr Funzt (außer wenn ich meinen Computer neustarte)!
Ich hab den Ablauf mal als Liste aufgeschrieben:
1. Server Start
2. Client Start
3. Client bekommt eine Verbindung
4. Ich beende den Server
5. Server Start
6. Client Start
7. Client bekommt keine Verbindung (Connection Timed out)
8. Neustart des Computers
9. Server Start
10. Client Start
11. Client bekommt eine Verbindung
12. ...
Hatt einer ne Idee? Ich vermute (und korrigiert mich wenn ich wiesooft danebenliege) dass irgendein rmi Prozess mit System.exit(0) nochnicht beendet ist und immernoch Daten für dass (bereits beendete) programm empfängt dass aber nicht mehr antworten kann!
Hier noch ein Paar Client und Server Snippets:
Server:
Client:
Ich habe via rmi eine Client-Server-Applikation geschrieben und gleich als erstes dass Port-Forwarding (war bei meinem Router unter dem Punkt "Virtual Server" zu finden) eingerichtet.
Dass Funktioniert auch alles wunderbar nur dass der Server beim zweiten Start nicht mehr Funzt (außer wenn ich meinen Computer neustarte)!
Ich hab den Ablauf mal als Liste aufgeschrieben:
1. Server Start
2. Client Start
3. Client bekommt eine Verbindung
4. Ich beende den Server
5. Server Start
6. Client Start
7. Client bekommt keine Verbindung (Connection Timed out)
8. Neustart des Computers
9. Server Start
10. Client Start
11. Client bekommt eine Verbindung
12. ...
Hatt einer ne Idee? Ich vermute (und korrigiert mich wenn ich wiesooft danebenliege) dass irgendein rmi Prozess mit System.exit(0) nochnicht beendet ist und immernoch Daten für dass (bereits beendete) programm empfängt dass aber nicht mehr antworten kann!
Hier noch ein Paar Client und Server Snippets:
Server:
Code:
...
LocateRegistry.createRegistry(1099);
final Registry registry = LocateRegistry.getRegistry();
registry.rebind("client", new server());
...
try{
registry.unbind("client");
} catch (NotBoundException e){
...
}
System.err.println("Server beendet");
System.exit(0);
Client:
Code:
//Ip ändert sich muss sie nach jedem Neustart neu einstellen
rmiverbindung = (client) Naming.lookup("rmi://**.***.**.***:1099/client");