# Was wird genau per Telnet verschickt ?



## Kassel (10. Apr 2011)

Hi Community,

ich habe eine Frage bezüglich Telnet, und zwar nutze ich einen  BufferedReader der die daten empfängt, z.B: wenn jemand in eine console ( Telnet ) an den Server:

```
t:10
```
 schickt, dann bekomme ich im String nachricht 
nachricht = bufferedReader.readLine()

t:10 ausgegeben ... dass ist alles in Ordnung, doch wie sieht es aus wenn mir jemand ein Datenprotkoll  bestehend aus 10 bytes schickt ... bekomme ich dann 00010101001010101001010 als String zurück   oder wandelt der bufferedReader die bits in bestimmte Zeichen um ?


----------



## FArt (10. Apr 2011)

Mit einem Reader kannst du nur Text sinnvoll lesen. Lies also die Bytes und interpretiere sie nach deinem Protokoll.


----------



## Kassel (11. Apr 2011)

Hmm ... ich wollte umgehen mit Byteströmen zu arbeiten und die dann auseinander zu frickeln ... könnte man nicht einfach den Reader auf diesen Bytestrom setzen ... so dass dann 010101010101001010101 usw. mir als Text übergeben wird und ich dann sage hier nach 16 zeichen ( 2 Byte ) schneide ab uund gib mir den Rest aus ???

Oder soll ich halt den Datenstrom denn ich bekomme bit pro bit einlesen und puffern und dann auswerten ??


----------



## FArt (11. Apr 2011)

Kassel hat gesagt.:


> Hmm ... ich wollte umgehen mit Byteströmen zu arbeiten und die dann auseinander zu frickeln ... könnte man nicht einfach den Reader auf diesen Bytestrom setzen ... so dass dann 010101010101001010101 usw. mir als Text übergeben wird und ich dann sage hier nach 16 zeichen ( 2 Byte ) schneide ab uund gib mir den Rest aus ???
> 
> Oder soll ich halt den Datenstrom denn ich bekomme bit pro bit einlesen und puffern und dann auswerten ??



Mit einem Reader kannst du nur Text sinnvoll lesen. Lies also die Bytes und interpretiere sie nach deinem Protokoll.


----------



## Kassel (11. Apr 2011)

Ich verstehe nicht genau was du damit meinst ... ( bin halt anfänger   )  ... eigentlich ging es mir um die frage ob man nicht per BufferedReader die daten in einen String packen könnte und dann z.b: 

String daten;

packe per BufferedReader die Daten in den String ...

und dann sage ich

byte[] receiveData = new byte[1024];
receiveData= daten.getBytes();

danach kann ich receiveData interpretieren ????

würde das gehen ?


----------



## FArt (11. Apr 2011)

Ein Reader interpretiert den Datenstrom als Text, basierend auf dem anzuwendenen Encoding. Genau das kann dir deine Binärdaten zerstören.
Binärdaten musst du binär verarbeiten.
Prinzipiell ist Telnet zeichenbasiert. Das sollte also (passendes Encoding vorausgesetzt) auch mit einem Reader funktionieren. Binärdaten kannst du aber nur als nicht-text verarbeiten. 
Es gibt natürlich schon genügend Java-APIs bzw. Applikationen, die Telent realisieren. Du kannst diese verwenden oder auch mal in deren Sourcecode spicken.


----------

