G
Gast
Gast
Hallo,
ich programmiere grad einen relativ simplen Chat mit GUI und hab grad das "kleine" Problem,
dass ein String, bei dem ein Zeilenumbruch enthalten ist (also durch Enter), nicht komplett
an den Zielclient geschickt wird. "Normale" Zeilenumbrüche, also wenn man einfach über die
Zeile hinausschreibt, funktionieren problemlos.
Hier ein kurzer Auszug, wie ich den Test einlese:
inputField ist eine JTextArea.
Der String "msg" wird dann an den Server gesendet.
Gesendet wird so:
Und beim Server so ausgewertet und weiterversendet:
Beim Zielclient wird dann der Text nach dem Leerzeichen eingelesen und ausgegeben.
Wenn ich aber nun was senden will wie z.B.
kommt beim Zielclient nur "Zeilentest" an.
Ich nehme mal an, dass es ein Problem beim einlesen durch den Writer bzw. Stream gibt, allerdings
kenn ich mich mit den verschiedenen Writern/Readern/Streams noch nicht so 100% aus.
Drum hoff ich mal, einer von euch hat ne Idee, wie ich das lösen könnte, dass auch die "Enter"-Eingabe
erkannt und mitversendet wird.
Danke schonmal im voraus
ich programmiere grad einen relativ simplen Chat mit GUI und hab grad das "kleine" Problem,
dass ein String, bei dem ein Zeilenumbruch enthalten ist (also durch Enter), nicht komplett
an den Zielclient geschickt wird. "Normale" Zeilenumbrüche, also wenn man einfach über die
Zeile hinausschreibt, funktionieren problemlos.
Hier ein kurzer Auszug, wie ich den Test einlese:
inputField ist eine JTextArea.
Code:
String text=inputField.getText();
String msg="msg"+targetnumber+" "+c.number+","+text;
Gesendet wird so:
Code:
s=new Socket(ip, port);
out=new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
//irgendwo weiter unten
try{
out.write(msg);
out.newLine();
out.flush();
}catch(IOException io){io.printStackTrace();}
Und beim Server so ausgewertet und weiterversendet:
Code:
String text=msg.substring(msg.indexOf(',')+1,msg.length());
server.send(targetname,"msg"+sourcename+" "+text);
Beim Zielclient wird dann der Text nach dem Leerzeichen eingelesen und ausgegeben.
Wenn ich aber nun was senden will wie z.B.
Code:
Zeilentest
.
.
.
Noch ne Zeile
.
.
.
etc
kommt beim Zielclient nur "Zeilentest" an.
Ich nehme mal an, dass es ein Problem beim einlesen durch den Writer bzw. Stream gibt, allerdings
kenn ich mich mit den verschiedenen Writern/Readern/Streams noch nicht so 100% aus.
Drum hoff ich mal, einer von euch hat ne Idee, wie ich das lösen könnte, dass auch die "Enter"-Eingabe
erkannt und mitversendet wird.
Danke schonmal im voraus