2012-04-11 9 views
0

Hintergrund:java swing: Notifizierende Clients auf Server-Neustart oder Shutdown

ich eine Java Swing basierte Client-Server-Anwendung geschrieben haben. Der Server ist ein Frühlingscontainer und hat eine Reihe von Diensten. Der Server-Client kommuniziert über serialisierte Objekte über Sockets. Der Server erstellt für jede Clientsitzung einen neuen Thread und verwaltet während des Zeitraums der Kommunikation eine Zuordnung der Sitzungen.

ich einen Shutdown-Haken an der JVM Hinzufügen

In meiner GUI, ich habe einen „Stop Server“, um die Sitzungen Benutzer entfernt und bereinigt.

Problem: Das alles funktioniert gut, aber jetzt möchte ich die Clients bekannt geben, wenn der Server neu gestartet oder gestoppt wird. Irgendwelche Ideen, wie man das macht?

Danke.

Antwort

1

Sie haben wahrscheinlich eine Methode, um Antworten vom Server zu erhalten. Lassen Sie diese Methode in einem separaten Thread laufen und warten Sie permanent in einer Schleife auf Nachrichten vom Server. Wenn der Server beendet wird, wird die Verbindung geschlossen und die empfangende Methode erhält eine Ausnahme.

1

Wie unter Alexei angegeben, können Sie warten, bis der Client eine Ausnahme ausgelöst hat, und automatisch sagen, dass der Server heruntergefahren oder gestoppt wurde. Dies ist jedoch möglicherweise nicht die beste Lösung, es sei denn, Sie wissen sicher, dass dies der einzige Fehler ist, den Ihr Server jemals haben wird.

Ich empfehle, alle Clients eine bestimmte Nachrichten zu senden, die dem Client mitteilt, dass der Server absichtlich gestoppt wird. Wenn die Clients diese bestimmte Nachricht erhalten, können sie ihre Sockets schließen. Siehe Suns Beispiel des Knock Knock Server.