Socket schließen - Ist eine SocketException unumgänglich?

Jack159

Bekanntes Mitglied
Hi,

Ich schreibe gerade an einem Client-Server Programm. Wenn der Client das Programm beendet, dann wird vorher noch der Socket (mit welchem er sich zum Server verbunden hat) geschlossen.

Das Problem ist aber nun, dass auf der Clientseite in einem seperaten Thread eine Endlosschleife läuft mit

Java:
code = in.read();  // "code" ist int und "in" ist DataInputStream

Da ja die Methode read() blockt wenn nichts emfpangen/gelesen wird ist nun das Problem, dass sobald ich den Socket auf der Clientseite schließe, der Thread noch im read() festhängt. Er versucht dann also weiterhin zu lesen, obwohl der Socket soeben geschlossen wurde.

In der API steht aber auch:

Socket (Java Platform SE 6)

Any thread currently blocked in an I/O operation upon this socket will throw a SocketException.


Ist das also unumgänglich und ich habe doch alles richtig gemacht und brauche in dem Fall hier die Exception nicht ausgeben?
 

didum

Mitglied
Bevor du den Socket schließt sendest du dem Clienten ein Signal um den Thread zu beenden.

Im Thread sieht's dann folgendermaßen aus:

Java:
while (true) {
    //..

    code = in.read();

    if (code == Signal) {
       break;
    }

    // Was du auch immer damit machen willst
}
 

Sen-Mithrarin

Gesperrter Benutzer
boa ... gott lass hirn vom himmel fallen


while(true) und break ... ich werd nich mehr

schon mal dran gedacht statt unsauber mit break rauszuspringen das flag einfach in den kopf der schleife zu packen und daraus dann do-while zu machen ...

korrekt dann also so

Java:
boolean run=true;
// ...
do
{
	// ...
}
while(run)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
izoards Socket Kommunikation Java Basics - Anfänger-Themen 16
Nina Pohl Ein Vorgang bezog sich auf ein Objekt, das kein Socket ist Java Basics - Anfänger-Themen 6
G Socket Verbindung aufbauen Java Basics - Anfänger-Themen 11
S Bilder über Socket Senden Java Basics - Anfänger-Themen 1
S Asynchrone Socket-Abfragen Java Basics - Anfänger-Themen 5
Meeresgott OOP Socket Verbindung richtig Kapseln Java Basics - Anfänger-Themen 0
O Socket by reference übergeben Java Basics - Anfänger-Themen 0
D Socket ---> Server Socket worauf muss ich achten? Java Basics - Anfänger-Themen 2
N Socket-Programmierung Java Basics - Anfänger-Themen 4
M wait/notify bei Socket Java Basics - Anfänger-Themen 4
B Input/Output Socket I/O - outputStream.write(-1) Java Basics - Anfänger-Themen 2
B Socket OutputStream Java Basics - Anfänger-Themen 17
B Socket Kommunikation in beide Richtungen Java Basics - Anfänger-Themen 12
B Socket, args Java Basics - Anfänger-Themen 22
L Socket in JTextArea Java Basics - Anfänger-Themen 9
T Input/Output Zwei InputStreams von einem Socket Java Basics - Anfänger-Themen 2
B Socket Problem Java Basics - Anfänger-Themen 3
T socket.close aber verbindung besteht noch Java Basics - Anfänger-Themen 4
F Buffered Image über Socket versenden Java Basics - Anfänger-Themen 6
E Socket InputStream "terminiert" nicht Java Basics - Anfänger-Themen 4
B Threads Interrupt während Socket.read()? Java Basics - Anfänger-Themen 3
M Versand von Nachrichten via Socket (Delay) Java Basics - Anfänger-Themen 21
F socket-problem Java Basics - Anfänger-Themen 6
E Input/Output Socket bekommt keine Verbindung bei funktionierendem Fremdziel Java Basics - Anfänger-Themen 2
E Socket (Client) dauerhaft aktiv? Java Basics - Anfänger-Themen 9
D Java - Socket - Datenübertragung Java Basics - Anfänger-Themen 18
E Input/Output einfachen Socket für XML-Anfragen bauen Java Basics - Anfänger-Themen 13
R Cannot find a free socket for the debugger Java Basics - Anfänger-Themen 6
F Socket Kommunikation Java Basics - Anfänger-Themen 4
M "Connection reset" gbxRemote Socket Java Basics - Anfänger-Themen 9
N Files mit Byte an Socket versenden Java Basics - Anfänger-Themen 2
L FTP per Socket Java Basics - Anfänger-Themen 2
M Audio Stream läuft auf :connection abort: socket write error Java Basics - Anfänger-Themen 2
J Socket - BufferedReader lese Problem Java Basics - Anfänger-Themen 2
M Socket Server Java Basics - Anfänger-Themen 9
N Socket Problem? Java Basics - Anfänger-Themen 9
G Socket erstellen dauert sehr lange. Java Basics - Anfänger-Themen 4
H Java Socket Java Basics - Anfänger-Themen 14
A XML Daten über Socket Java Basics - Anfänger-Themen 3
I Allgemeine fragen zu Socket server Java Basics - Anfänger-Themen 6
C Socket Programmierung Java Java Basics - Anfänger-Themen 4
F Socket Instanz auf Klasse welche von Socket erbt zuweisen Java Basics - Anfänger-Themen 3
ven000m Wieso antwortet mein Server nicht mehr (Socket Anwendung) Java Basics - Anfänger-Themen 2
J Daten von einem (char*)Socket einlesen. Java Basics - Anfänger-Themen 3
S Java Socket Java Basics - Anfänger-Themen 3
K Frage zu SdtOut streams bzw. Socket Programmierung Java Basics - Anfänger-Themen 3
M HTTP-Anfragen und Socket Java Basics - Anfänger-Themen 2
A von Socket-Stream lesen Java Basics - Anfänger-Themen 4
M Ändern einer Socket-Eigenscheft aus einem modalen Dialog? Java Basics - Anfänger-Themen 6
T j.u.Scanner(Sys.in).nextLine() wieder schließen? Java Basics - Anfänger-Themen 5
berserkerdq2 Wann soll ich den Stream schließen, wenn ich das in einer Methode habe? Java Basics - Anfänger-Themen 8
T jOptionPane zum schließen von Fenster, wie "Ja" und "Nein" anstatt Yes und No Java Basics - Anfänger-Themen 2
JEP1 Java Dialog Fenster schließen Spiel Java Basics - Anfänger-Themen 0
F Terminal Windows per Befehl schließen? Java Basics - Anfänger-Themen 9
N Speichern von Werten in Variablen nach Schließen des Programms Java Basics - Anfänger-Themen 3
L Scanner schließen in While-Schleife? Java Basics - Anfänger-Themen 2
CptK Interface Klasse Frame (extends JFrame) aus anderer Klasse schließen Java Basics - Anfänger-Themen 7
F Java Programm schließen Java Basics - Anfänger-Themen 1
F Interface JFrame mit if-Abfrage automatisch schließen lassen? Java Basics - Anfänger-Themen 3
R Eine Schleife durch eine Methode schließen? Java Basics - Anfänger-Themen 4
J Seite öffnen und schließen Java Basics - Anfänger-Themen 2
b1ck Scanner schließen, erneute Verwendung Java Basics - Anfänger-Themen 12
A Input/Output Datenströme schließen in eigener Methode Java Basics - Anfänger-Themen 5
H Klassen Von Instanzvariablen auf Instanz schließen Java Basics - Anfänger-Themen 21
D JFrame - 10 Sekunden bis zum schließen warten. Java Basics - Anfänger-Themen 2
A Dialog schließt erst nach 2x Klicken auf Schließen Java Basics - Anfänger-Themen 2
K Methoden Schließen eines Fensters Java Basics - Anfänger-Themen 8
H JFrame komplett schließen Java Basics - Anfänger-Themen 3
X JFrame Fenster einzeln schließen Java Basics - Anfänger-Themen 2
D JDialog schließen Java Basics - Anfänger-Themen 11
L Schließen von Fenstern über Standartfunktion (X) Java Basics - Anfänger-Themen 11
F Erste Schritte Aktuelles Fenster durch Event schließen Java Basics - Anfänger-Themen 3
1 Programm schließen und Neustarten Java Basics - Anfänger-Themen 5
S Konsole schließen, nachdem Jar läuft Java Basics - Anfänger-Themen 5
T JFrame per Taste schließen Java Basics - Anfänger-Themen 15
M Erste Schritte Probleme mit Fenster Schließen Java Basics - Anfänger-Themen 6
S Fenster richtig schließen Java Basics - Anfänger-Themen 8
JAVAnnik Anwendung nach Schließen vom letzen Frame Java Basics - Anfänger-Themen 9
S nur neu geöffnetes Fenster schließen Java Basics - Anfänger-Themen 3
D Beim schließen --> Speichern?? Java Basics - Anfänger-Themen 11
T Windows Fenster Schließen Java Basics - Anfänger-Themen 4
F Textfenster lässt sich nicht schließen Java Basics - Anfänger-Themen 3
0 FireFox aus Java Applikation schließen Java Basics - Anfänger-Themen 10
J Fenster schließen? Java Basics - Anfänger-Themen 4
M Befehl zum Fenster schließen? GUI Java Basics - Anfänger-Themen 3
S Programm gestartet - nun schließen? Java Basics - Anfänger-Themen 5
C try finally - Streams schließen Java Basics - Anfänger-Themen 7
B Java Fenster schließen Java Basics - Anfänger-Themen 2
J Frame schließen, Ereignis behandeln, Vorgang abbrechen Java Basics - Anfänger-Themen 4
Luk10 Frame schließen Java Basics - Anfänger-Themen 2
F festlegen, was beim schließen des fensters passiert Java Basics - Anfänger-Themen 12
A Frame schließen!? Help! Java Basics - Anfänger-Themen 5
H Modalen JDialog schließen, ohne dabei das Parent-Frame zu schließen Java Basics - Anfänger-Themen 7
T Per Button Klick Fenster schließen?< Java Basics - Anfänger-Themen 7
T Problem mit Fenster schließen Java Basics - Anfänger-Themen 8
A Java Frame per X schließen? Java Basics - Anfänger-Themen 7
R Endlosschleife verhindert das Schließen des Fensters Java Basics - Anfänger-Themen 10
M (Sub-)Anwendung schließen aus JMenu Java Basics - Anfänger-Themen 6
R Neue GUI öffnen und die Alte schließen Java Basics - Anfänger-Themen 6
K Schließen eines Frames Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben