Ich zeig euch erstmal kurz mein Programm und darauf folgt dann die Problembeschreibung.
Client.java
Jetzt hab ich folgendes Problem: Möchte ich den Client disconnecten, rufe ich die Methode disconnect auf. Hierbei kommt es immer zu einer Exception, da in Zeile 21 zu diesem Zeitpunkt versucht wird vom Stream zu lesen. Gibt es eine Möglichkeit diese Exception zu verhindern?
Client.java
Java:
import java.io.InputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
public class Client extends Thread {
private Socket socket;
private InputStream in;
private OutputStream out;
public Client(Socket socket) {
this.socket = socket;
}
public void run() {
try {
in = socket.getInputStream();
out = socket.getOutputStream();
while (true) {
int len = in.read();
if (len == -1) {
break;
}
len = (len << 8) + (in.read() & 0xFF);
byte[] buffer = new byte[len];
in.read(buffer, 0, len);
[...]
}
} catch (IOException e) {
e.printStackTrace();
} finally {
disconnect();
}
}
public void disconnect() {
if (socket != null && !socket.isClosed()) {
try {
out.close();
in.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
Jetzt hab ich folgendes Problem: Möchte ich den Client disconnecten, rufe ich die Methode disconnect auf. Hierbei kommt es immer zu einer Exception, da in Zeile 21 zu diesem Zeitpunkt versucht wird vom Stream zu lesen. Gibt es eine Möglichkeit diese Exception zu verhindern?
Zuletzt bearbeitet von einem Moderator: