Schliessen eines Serversockets

2AndAHalfBit

Aktives Mitglied
Hallo,

ich habe einen Chatserver, der auf eingehende Clients wartet, und für Sie einen Thread startet, der für auf ankommende Nachrichten vom Client wartet und sie entsprechend verarbeitet. Meldet sich der Client ab, wird der Server angewiesen, den ensprechenden Thread zu stoppen und die Userinstanz zu zerstören. Dabei werden auch alle Resourcen der Clientverbindung, insbesondere das Socket und die Streams, aufgeräumt.

Soweit sogut. Jetzt ist es aber so, dass ja noch das Serversocket existiert, welches auf neue Verbindungen lauscht. Das muss ja noch geschlossen und freigegeben werden. Also dachte ich mir, ich installiere einen eigenen Thread der auf Konsoleneingaben horscht und bei einem bestimmten Keywort das Socket schliesst.

Dummerweise wird das Socket geschlossen, während der Server in der Methode accept steckt und wirft eine Exception. Alles logisch, aber habt ihr vielleicht einen Lösungsansatz für mich?

Grüße
 
S

SlaterB

Gast
try catch drumherum, eine Exception ist nichts böses,
oder mit Timeout arbeiten, und den ServerSocket zwischen zwei accept-Perioden schließen
 

thewulf00

Bekanntes Mitglied
Wie Slater schon sagte: Du steckst immer im Accept fest, wenn Du grade abbrichst/schließt. Denn Accept wartet ja, dass jemand kommt.
Wenn Du nun von außen abbrichst, egal wie, dann wirft Accept eine Exception, die Du abfangen kannst (separiere diese von den andren Exceptions).
Das ist das normale Vorgehen zum Abbrechen des Sockets. Die Exception muss sein und ist wichtig.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Threads closen und Sockets schliessen Netzwerkprogrammierung 5
D Socket Streams schliessen .. Exception gewollt? Netzwerkprogrammierung 4
M SocketError bei Aufruf eines SOAP-Servers Netzwerkprogrammierung 8
G seite nach posten eines html-forms laden Netzwerkprogrammierung 0
J Protokolle innerhalb eines Heimnetzwerks Netzwerkprogrammierung 6
V Kann man mit Hilfe eines Java-Programms den Zugriff auf bestimmte Internetseiten verhinden? Netzwerkprogrammierung 3
N Name eines Attributes aus einem festen String und einer Variablen generieren Netzwerkprogrammierung 5
X Response eines RESTful-Service mit JSON Netzwerkprogrammierung 8
F Neuer Json aus teilen eines vorhandenen Json Netzwerkprogrammierung 0
N Client Identifikation eines Servers Netzwerkprogrammierung 1
R Problem beim Programmieren eines Chatprogramms Netzwerkprogrammierung 5
K Multiplayer eines Spiels Netzwerkprogrammierung 21
K Ansprechen eines Remote Druckers Netzwerkprogrammierung 2
L Erstellen eines Online Multiplayer Apps Netzwerkprogrammierung 10
eLogic Download eines Links Netzwerkprogrammierung 2
U Socket Abhören eines Sockets/Ports in extra Thread Netzwerkprogrammierung 8
Hindi93 Abbruch eines Programmes abfangen Netzwerkprogrammierung 8
1 SSH-Kommunikation - Ende eines Streams nicht erkenntlich Netzwerkprogrammierung 2
C Alle Computer eines Netzwerkes finden Netzwerkprogrammierung 32
N Senden eines Arrays Netzwerkprogrammierung 6
U Name eines Netzlaufwerks ermitteln Netzwerkprogrammierung 5
L Body eines http Request auslesen Netzwerkprogrammierung 2
K Ende eines HTTP Response/Request Netzwerkprogrammierung 6
aze Tcp Verkehr eines Applets simulieren Netzwerkprogrammierung 10
J Socket Erreichbarkeit eines Java Servers (Socket-Lösung) über das Internet Netzwerkprogrammierung 3
M Socket Leistungsfähigkeit eines xSocketservers, wieviele Verbindungen max? Netzwerkprogrammierung 4
clupus Exception beim Schließen eines Sockets Netzwerkprogrammierung 6
cowabunga1984 Transferierte Datenmenge eines SOAP Clients (JAX-WS) anzeigen Netzwerkprogrammierung 2
K TrafficClass eines UDP Pakets kommt beim Empfänger nicht an Netzwerkprogrammierung 5
musiKk Problem bei bidirektionaler Nutzung eines Socket Netzwerkprogrammierung 2
J Machbarkeit eines Bluetooth-Servers? Netzwerkprogrammierung 2
S Realisierung eines Netzwerkcodes für ein Strategiespiel Netzwerkprogrammierung 7
K "Ende eines Sockets" Netzwerkprogrammierung 9
A Broadcast - senden eines Packetes an alle rechner im netz Netzwerkprogrammierung 15
P problem beim schließen eines Streams Netzwerkprogrammierung 6
K Mit Java-MailAPI dir Verfügbarkeit eines SMTP-Servers prüfen Netzwerkprogrammierung 4
J while-Schleife / Abbruchbed. beim Einlesen eines Streams Netzwerkprogrammierung 4
U Ende eines Inputstreams ermitteln Netzwerkprogrammierung 3
J Länge eines Streams Netzwerkprogrammierung 4
T Timeout eines KSOAP-Calls Netzwerkprogrammierung 5
G Info eines Webseites kopieren Netzwerkprogrammierung 16
J Antwort eines Soaprequests parsen mittels org.apache.soap Netzwerkprogrammierung 2
E Möglichkeit zum Timeout eines Process Netzwerkprogrammierung 7
T Erstellung eines Proxy Netzwerkprogrammierung 11
T Pfad eines Servlets rausfinden Netzwerkprogrammierung 2
O Einbinden eines java-servers Netzwerkprogrammierung 9
C Übergabe eines Datensatzes (Übergabestruktur) Netzwerkprogrammierung 12
G Verzeichnis eines Rechners übers Netzwerk auslesen Netzwerkprogrammierung 5
B Problem mit der Ausgabe eines Strings an SocketOut Netzwerkprogrammierung 4
Z Verbindung zwischen 2 Rechnern über ServerSockets nicht möglich Netzwerkprogrammierung 3
S HTTP ServerSockets und Threads Netzwerkprogrammierung 5
S Problem mit 2 Serversockets unter Win XP Netzwerkprogrammierung 7

Ähnliche Java Themen


Oben