# Ab wann gilt ein Socket als geschlossen?



## nitsche (23. Okt 2004)

Moin Moin,

ich hab einen Server und einen Client.

Nachdem beim Applet stop() ausgelöst wurde, werden die Eingangs- und Ausgangsströme sowie der Socket geschlossen.

Beim Server allerdings wird beim Abfragen des Sockets mit isClosed() weiterhin false zurückgegeben?

Wie kann das sein? Ich hab doch im Applet den Socket geschlossen...   :cry: 

und noch eine frage: ist es eigentlich besser auf dem Server jede Verbindung als eigenständigen Thread zu laufen oder reicht es aus, nur Klassen zu bilden?

Im Vorraus schon einmal danke...
 Tobias


----------



## L-ectron-X (24. Okt 2004)

Wenn Du mit _isClosed()_ prüfen willst, gibt Dir diese Methode ein wahr (true) zurück, wenn der Socket geschlossen ist und ein falsch (false), so lange er noch geöffnet ist.
Du kannst mit jedem neuen Verbindungswunsch eines Clients einen neuen Thread erzeugen und diesen unabhängig von den anderen Clients behandeln. Praktisch alle modernen Serversysteme arbeiten nach diesem Prinzip.

Bitte beim nächsten Mal einen Aussage kräftigen Titel verwenden.


----------



## Grizzly (24. Okt 2004)

L-ectron-X hat gesagt.:
			
		

> [...]Bitte beim nächsten Mal einen Aussage kräftigen Titel verwenden.



Ja, der Thread-Titel ist mal wieder der Renner. Die meisten Leute stellen hier fragen. Die Wenigsten fangen einen Thread mit einer Antwort oder Aussage an. 

Die Java Sockets sind, was das angeht, ein bisschen doof. Unter Borland Delphi bspw. gibt es ein Ereignis, wenn die Gegenstelle die Verbindung schließt. Unter Java ist das leider nicht so. Da wird erst beim nächsten Versuch, Daten über die Verbindung zu schicken, eine entsprechende Exception geworfen.


----------



## nitsche (24. Okt 2004)

sorry für den titel ist geändert.

der socket gibt natürlich false zurück...

danke für die antworten erstmal


----------

