Threads closen und Sockets schliessen

Kayuke

Mitglied
Huhu,
mein Spiel läuft jetzt ganz ordentlich und fast alles Bugs sind behoben :)

Nun hätte ich nur noch eine Frage zum Thema Threads Closen und Sockets schliessen.
Erstmal die Ausgangssituation, ich habe eine Klasse MultiPlayerPanel, worin 3 Buttons sind, einmal "Create", einmal "Join" und wenn eine Verbindung besteht erscheint ein 3ter Button mit "Start Game", nun wenn man auf Create klickt wird eine neue Instanz der Klasse Server erstellt in einer eigenen Instanz. Anschließend kann ein anderer Spieler auf Join klicken, die IP eingeben und dann wird eine Instanz der Klasse Client erstellt, ebenfalls in einem eigenem Thread.

Hier eine Skizze, falls das oben nicht verständlich war:
qohua3z9dx2e.png


Nun die Frage, wie "close" ich anständig die Threads und den Server und die Verbindung des Clienten damit ich z.B. wieder den Port freigebe und einen neuen Server erstellen kann?

Meine Überlegung war:
In den Klassen Server und Client eine Methode close() wo drin steht
Java:
server.close(); // bzw. beim beim Clienten client.close();
currentThread().close();
und im MultiPlayerPanel Server = null und Client = null.

Er schmeisst mir aber leider direkt eine Exception beim server.close(); :
"Exception in thread "Thread-3" java.lang.NullPointerException" und zeigt mir genau die "server.close();" zeile an.

Und bei currentThread().close() oder auch currentThread.stop() wird das close bzw. stop durchgestrichen angezeigt, vlt soll mir das auch etwas sagen das es so nicht geht :p
 
Zuletzt bearbeitet:

Bizarrus

Bekanntes Mitglied
Prüf doch einfach ob die Variable halt null ist. Denn wenn diese null ist, kann diese eh nicht geschlossen werden - Wo liegt da nun das Problem?

Java:
if(server != null) {
server.close();
}

Und bei currentThread().close() oder auch currentThread.stop() wird das close bzw. stop durchgestrichen angezeigt, vlt soll mir das auch etwas sagen das es so nicht geht :p

Da wäre die Frage, was currentThread für eine Methode ist, und was diese returnt und ob das returnte Objekt überhaupt close() als Methode kennt.
 

Kayuke

Mitglied
Das Problem ist das es so wohl nicht geht bei Sockets.

Ich hab das so schon jetzt mehrfach probiert, also ich erstelle einen Server, rufe dann server.close() auf doch wenn ich dann wieder nen Server erstellen will sagt er mir der Port sei besetzt.

currentThread() ist eine vorgegebene Methode:
Returns a reference to the currently executing thread object.
Returns:
the currently executing thread.


Deshalb dachte ich mit currentThread().stop(); bzw. mit currentThread().close(); müsste der Thread noch geschlossen werden aber das bringts leider auch nicht.
 

Bizarrus

Bekanntes Mitglied

Kayuke

Mitglied
Die Methoden sind alle vorhanden, würde schon sehen wenns net so wäre daher klar hat die ServerSocket ne close methode.

Und jop es ist ein richtiger Thread, der wird extra genutzt für den Server damit der Server im Hintergrund die ganze Zeit die Daten austauscht. Ich probier einfach mal weiter rum :p
 

Bernd Hohmann

Top Contributor
Nun die Frage, wie "close" ich anständig die Threads und den Server und die Verbindung des Clienten damit ich z.B. wieder den Port freigebe und einen neuen Server erstellen kann?

Threads "schliessen" sich dadurch, dass sie aus "run()" herausfallen.

Was die Sockets angeht: der Client sollte eine "Quit" Message senden, die der Server mit einem "OK" beantwortet. Danach können beide Seiten ihren Socket zumachen und mit einem netten "return;" aus "run()" verschwinden.

Ansonsten hast Du das beiderseitige Problem, dass Du halt die Exceptions der Sockets bzw. deren Streams abhandeln musst (die bei Dir vermutlich auch in einem .close() und herausfallen aus run() hinauslaufen).

Weiter ist da nichts zu machen.

Bernd
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T TCP mit und ohne Threads Netzwerkprogrammierung 1
Yonnig Threads mit Client/Server und GUI (laufend bis button-click) Netzwerkprogrammierung 9
K Threads/Server/telnet Fehler Netzwerkprogrammierung 2
D Exception Handling bei In/Outputsockets in eigenen Threads Netzwerkprogrammierung 1
C Frage zu Threads & Server Netzwerkprogrammierung 4
J Threads & Streams Netzwerkprogrammierung 9
P RMI Threads die über RMI auf Datenbank zugreifen Netzwerkprogrammierung 2
S HTTP ServerSockets und Threads Netzwerkprogrammierung 5
B Sockets, Threads & Plugins Netzwerkprogrammierung 7
T Verbindungsversuche über TCP Sockets von mehreren Threads führt zu Serverabsturz Netzwerkprogrammierung 2
R Threads mit einem WebService Netzwerkprogrammierung 4
M Verständnisfrage zu RMI und Threads Netzwerkprogrammierung 2
L einfacher server ohne threads Netzwerkprogrammierung 4
A Threads auflisten und nacheinander ansprechen Netzwerkprogrammierung 6
C I/O - Synchronisation durch Threads in einem ChatClient Netzwerkprogrammierung 4
J Probleme mit Threads (Client terminiert) Netzwerkprogrammierung 4
P Threads einbinden Netzwerkprogrammierung 11
P RMI Callback (mit Threads?) Netzwerkprogrammierung 3
T RMI Threads und Synchronized Netzwerkprogrammierung 13
A Datenverteilung: Mehrere Threads verwenden? Netzwerkprogrammierung 4
S Threads beim Server koordinieren Netzwerkprogrammierung 5
L ClientServer mit 2 Threads Netzwerkprogrammierung 5
N Threads und Socketprogrammierung Netzwerkprogrammierung 4
G 1 Socket 2 Threads problem Netzwerkprogrammierung 13
K Problem mit Threads Netzwerkprogrammierung 3
S Threads bei Web Service sinnvoll oder Alternative? Netzwerkprogrammierung 2
K Hintergrund - Threads Netzwerkprogrammierung 3
G Socket Programmierung - Max. Threads Netzwerkprogrammierung 5
C NetScanner arbeitet trotz Threads langsam Netzwerkprogrammierung 6
L UDP-Server mit Threads Netzwerkprogrammierung 8
K Windows 10 Threads gleichzeitig Netzwerkprogrammierung 18
C Join von Threads bei I/O-Operation Netzwerkprogrammierung 6
F Threads synchronisieren mit Pipes Netzwerkprogrammierung 3
G benötige Beispiel für parallel ablaufende Threads Netzwerkprogrammierung 3
F Problem mit Threads und Sockets Netzwerkprogrammierung 3
TRunKX Threads beenden sich selber? Netzwerkprogrammierung 6
T Kleiner Chatserver: Threads oder Multiplex? Netzwerkprogrammierung 18
B Socket BufferedReader.readLine() beenden ohne den Stream zu closen Netzwerkprogrammierung 7
Jannn Socket Sockets an ein anderes Gerät weiterreichen? Netzwerkprogrammierung 8
JaXnPriVate Java HTTPS Server (Secure Sockets) Netzwerkprogrammierung 15
B Socket Bilder verschicken via Sockets. Heap-Problem. Netzwerkprogrammierung 2
E Socket Parameter über Sockets übergeben und auslesen ! Netzwerkprogrammierung 5
D Socket Verwirrung bei Sockets Netzwerkprogrammierung 1
E Mehrere Sockets Netzwerkprogrammierung 2
N Fragen zu Sockets Client Netzwerkprogrammierung 3
A Sockets Serialisierung Netzwerkprogrammierung 1
H Sockets oder HTTP- Methoden? Netzwerkprogrammierung 3
T Socket Bidirektionale Verbindung mit Sockets Netzwerkprogrammierung 8
P Problem mit Datagram-Sockets Netzwerkprogrammierung 2
C Socket Datagram-Sockets mit integrierter Message Queue? Netzwerkprogrammierung 2
M Problem Client - Server Sockets: .ready() wird nie true! Netzwerkprogrammierung 6
F Technologiewahl: Swing/RMI/Sockets Netzwerkprogrammierung 13
D Mehrere Clients über Java-Sockets Netzwerkprogrammierung 13
F FTP Client mit Sockets - wann sagt der Server nichts mehr? Netzwerkprogrammierung 7
U Socket Abhören eines Sockets/Ports in extra Thread Netzwerkprogrammierung 8
M Socket Sockets Grundlage Netzwerkprogrammierung 25
I Socket HTTP Nachrichten über Sockets verschicken Netzwerkprogrammierung 2
D Socket Raw Sockets mit java.net.*? Bsp ICMP Netzwerkprogrammierung 7
H Komprimierte Sockets Netzwerkprogrammierung 4
V Verbindung zweier Rechner über das Internet mit Sockets Netzwerkprogrammierung 8
L Sockets übergeben Netzwerkprogrammierung 4
G NIO Sockets Architektur Problem Netzwerkprogrammierung 2
S Problem bzgl. Sockets / Server-Client-Struktur Netzwerkprogrammierung 3
B Socket Was muss man bei Sockets beachten? Netzwerkprogrammierung 10
N Socket Sockets und Events Netzwerkprogrammierung 11
A Programm umschreiben von Pipes auf Sockets Netzwerkprogrammierung 12
B Paralleler Dateitransfer: Ein Client - Mehrere Sockets? Wie connecten? Netzwerkprogrammierung 16
D RMI oder Sockets Netzwerkprogrammierung 4
P Sockets +Port Forwarding = Chaos Netzwerkprogrammierung 4
clupus Exception beim Schließen eines Sockets Netzwerkprogrammierung 6
Q Thread und Sockets... Netzwerkprogrammierung 2
G Sockets und HTTP: Ende des Datenempfangs erkennen Netzwerkprogrammierung 3
J Array oder Object über Sockets Netzwerkprogrammierung 8
O Sockets -- Einsieg Netzwerkprogrammierung 3
S Sockets und gzip Netzwerkprogrammierung 8
B Nachricht über Sockets kommt nicht an Netzwerkprogrammierung 8
data89 Sockets: ein alter Hut - für Euch - für mich nicht! Netzwerkprogrammierung 10
S Wiedereinmal Sockets ;-) Netzwerkprogrammierung 15
J Ascii / Unicode bei Sockets? Netzwerkprogrammierung 2
G Datagram-Sockets für UDP-Kommunikation Netzwerkprogrammierung 2
K "Ende eines Sockets" Netzwerkprogrammierung 9
A Sockets Netzwerkprogrammierung 10
feuervogel Sockets - Lokalen Port aber nicht IP bestimmen Netzwerkprogrammierung 3
C Einfacher Filedownload mit Sockets geht nicht für pdffiles Netzwerkprogrammierung 16
E Sockets, readLine() Netzwerkprogrammierung 7
M Sockets und InputStream Netzwerkprogrammierung 8
G Verbindung über Sockets Netzwerkprogrammierung 2
S zip-files über sockets übertragen Netzwerkprogrammierung 11
G immer wieder gleiche Sockets Netzwerkprogrammierung 2
V Suche Alternative zu Sockets Netzwerkprogrammierung 3
E Problem bei Sockets/InputStream über externe Klasse Netzwerkprogrammierung 5
A Datenverlust (zuviele Daten!) über Sockets Netzwerkprogrammierung 4
AlClemento Sockets -> BufferedReader Problem Netzwerkprogrammierung 2
B Übertragung via Sockets Netzwerkprogrammierung 12
C Dateien über Sockets versenden? Netzwerkprogrammierung 10
T Sockets Verständnisfrage: abwechelnd lesen-schreiben Netzwerkprogrammierung 4
S Habe ein Problem mit Sockets -> Client Server Netzwerkprogrammierung 2
G Strings über Sockets senden Netzwerkprogrammierung 5
P Probleme mit einem Array aus Sockets Netzwerkprogrammierung 2
Y buch: Netwerprogrammierung und Sockets Netzwerkprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben