Hallo,
ich programmiere gerade eine sehr einfache Chatanwendung, in der sich Clients per Socket mit einem Server verbinden und dann Nachrichten austauschen können. Der Server bedient die Clients in eigenen Threads, ich habe dafür eine eigene Klasse erstellt und die Verbindung steht wohl. Nachdem sich ein Client verbunden hat soll er einen Verbindungsbericht an den Server schicken. Der Output sieht so aus:
Durch die letzte Zeile überprüfe ich, ob das Programm bis hierhin kommt(Ja das tut es).
Auf der Serverseite wartet das Programm im Thread auf den Eingang von Nachrichten:
Da auf der Konsole "Warte auf Eingabe" erscheint, gehe ich davon aus, dass die Verbindung erfolgreich hergestellt wurde. Es wird jedoch nie "Nachricht empfangen" ausgegeben.
Das sollte allerdings passieren, wenn der Client einen nichtleeren String sendet.
Nun ist meine Annahme, dass ich irgendwo einen Fehler beim Input/Output gemacht habe.
Ich kann ihn leider nicht finden und wende mich daher an dieses Forum.
Wenn Euch auffällt, wo sich ein Fehler befindet wäre ich euch dankbar, wenn ihr mir das mitteilen könntet.
Gruß
GummiBrot
ich programmiere gerade eine sehr einfache Chatanwendung, in der sich Clients per Socket mit einem Server verbinden und dann Nachrichten austauschen können. Der Server bedient die Clients in eigenen Threads, ich habe dafür eine eigene Klasse erstellt und die Verbindung steht wohl. Nachdem sich ein Client verbunden hat soll er einen Verbindungsbericht an den Server schicken. Der Output sieht so aus:
Java:
socket = new Socket("localhost", 12448)
//Verbindungsbericht
OutputStream out = socket.getOutputStream();
PrintWriter pw = new PrintWriter(out);
BufferedWriter bw = new BufferedWriter(pw);
bw.write("connect:" + name );
System.out.println("Der Verbindungsbericht wurde an den Server gesendet");
Durch die letzte Zeile überprüfe ich, ob das Programm bis hierhin kommt(Ja das tut es).
Auf der Serverseite wartet das Programm im Thread auf den Eingang von Nachrichten:
Java:
System.out.println("Verbinde...");
socket = server.getServerSocket().accept();
InputStream in = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(in));
System.out.println("Warte auf Eingabe");
while(true) {
while (br.ready()) {
System.out.println(br.readLine());
String text = br.readLine();
if (!(text.equals(""))) {
System.out.println("Nachricht empfangen");
empfangeNachricht(text);
}
}
}
Da auf der Konsole "Warte auf Eingabe" erscheint, gehe ich davon aus, dass die Verbindung erfolgreich hergestellt wurde. Es wird jedoch nie "Nachricht empfangen" ausgegeben.
Das sollte allerdings passieren, wenn der Client einen nichtleeren String sendet.
Nun ist meine Annahme, dass ich irgendwo einen Fehler beim Input/Output gemacht habe.
Ich kann ihn leider nicht finden und wende mich daher an dieses Forum.
Wenn Euch auffällt, wo sich ein Fehler befindet wäre ich euch dankbar, wenn ihr mir das mitteilen könntet.
Gruß
GummiBrot