Hallo, ich versuche mich gerade daran ein kleines, einfaches Chat-Programm auf die Beine zu stellen. Das Problem liegt bei der Netzwerkverbindung, bzw beim lesen vom BufferedReader. Wenn ich einen neuen Thread für einen Clienten starte, stürzt das Programm sofort ab. Ich vermute das der Fehler irgendwo in der Thread-Klasse liegt, wenn er versucht etwas zu lesen. Bin leider noch Anfänger.
Ich hoffe das mir jemand helfen kann
Thread-Klasse:
Client-Klasse:
Server Klasse:
Ich hoffe das mir jemand helfen kann
Thread-Klasse:
Code:
package pack;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Timer;
import java.util.TimerTask;
public class ClientThread extends Thread {
Socket socket= null;
BufferedReader in = null;
PrintWriter out = null;
ClientThread(Socket socket) {
this.socket = socket;
}
public void run() {
try {
out = new PrintWriter(this.socket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(this.socket.getInputStream()));
String input = null;
while((input = in.readLine()) != null) {
}
out.close();
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Client-Klasse:
Java:
package pack;
import java.net.Socket;
public class Client {
public static void main(String[] args) {
Socket socket;
try {
socket = new Socket("localhost", 5555);
} catch(Exception e) {
e.printStackTrace();
}
}
}
Server Klasse:
Java:
package pack;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
public class Server {
ServerSocket server;
Socket socket;
ArrayList<PrintWriter> writer;
ArrayList<InputStreamReader> reader;
ArrayList<Integer> port;
PrintWriter out = null;
InputStreamReader in = null;
public void starteServer() {
try {
server = new ServerSocket(5555);
System.err.println("Server gestartet und wartet auf Verbindung...");
} catch (Exception e) {
e.printStackTrace();
}
}
public void warteAufAnfrage() {
while(true) {
try {
socket = server.accept();
out = new PrintWriter(socket.getOutputStream());
in = new InputStreamReader(socket.getInputStream());
writer.add(out);
//reader.add(in);
//port.add((Integer) socket.getPort());
System.err.println("Verbindung mit dem Port: " + socket.getPort() + " war erfolgreich!");
Thread t = new Thread(new ClientThread(socket));
t.start();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
Server server1 = new Server();
server1.writer = new ArrayList<PrintWriter>();
server1.reader = new ArrayList<InputStreamReader>();
server1.port = new ArrayList<Integer>();
server1.starteServer();
server1.warteAufAnfrage();
}
}