Hallo alle zusammen,
ich habe folgendes Problem:
Für eigenes Netzwerkprotokoll möchte ich gerne Strings für die Befehle nutzen ("GET, LIST, etc"). Ich bin jetzt soweit fertig mit dem Server-Teil den ich schon ausgiebig und ohne Probleme per Telnet getestet habe. Als ich jetzt zum ersten Mal den Client Teil ausprobiert habe der zunächst nur Strings empfangen sollte musste ich erschreckt feststellen das nach jedem Char der eigentlich dort stehen sollte noch ein weiterer hinzukam der da nicht hingehört (in dem Fall das leere Quadrat).
So sollte es aussehen: <ACCEPTED>;
So sieht es aus: (Quadrat)<(Quadrat)A......(Quadrat)>
Ich vermute ein Charset Problem kann mir jedoch noch keinen Reim darauf machen. Hier mal der Code zum senden und empfangen.
Server:
socket ist in dem Fall ein SocketChannel!
Und der Client:
socket ist wieder ein SocketChannel! Ich hab auch bereits statt UTF-8 auch ISO-8859-1 versucht. Ich weiss leider nicht mehr weiter.
Vielen Dank und Grüße
TheNME123[/code]
ich habe folgendes Problem:
Für eigenes Netzwerkprotokoll möchte ich gerne Strings für die Befehle nutzen ("GET, LIST, etc"). Ich bin jetzt soweit fertig mit dem Server-Teil den ich schon ausgiebig und ohne Probleme per Telnet getestet habe. Als ich jetzt zum ersten Mal den Client Teil ausprobiert habe der zunächst nur Strings empfangen sollte musste ich erschreckt feststellen das nach jedem Char der eigentlich dort stehen sollte noch ein weiterer hinzukam der da nicht hingehört (in dem Fall das leere Quadrat).
So sollte es aussehen: <ACCEPTED>;
So sieht es aus: (Quadrat)<(Quadrat)A......(Quadrat)>
Ich vermute ein Charset Problem kann mir jedoch noch keinen Reim darauf machen. Hier mal der Code zum senden und empfangen.
Server:
Code:
ByteBuffer writeBuffer = ByteBuffer.allocate(100);
String testMessage = ("<ACCEPTED>;");
for(char ch: testMessage.toCharArray()) {
writeBuffer.putChar(ch);
}
writeBuffer.flip();
socket.write(writeBuffer);
socket ist in dem Fall ein SocketChannel!
Und der Client:
Code:
ByteBuffer bb = ByteBuffer.allocate(8192);
socket.read(bb);
bb.flip();
Charset charset = Charset.forName("UTF-8");
CharsetDecoder decoder = charset.newDecoder();
CharBuffer charBuffer = decoder.decode(bb);
String result = charBuffer.toString();
System.out.println(result);
message.append(result);
socket ist wieder ein SocketChannel! Ich hab auch bereits statt UTF-8 auch ISO-8859-1 versucht. Ich weiss leider nicht mehr weiter.
Vielen Dank und Grüße
TheNME123[/code]