Bezeichner "end of line" für die Funktion readline

  • Themenstarter Themenstarter Trivium6
  • Beginndatum Beginndatum
T

Trivium6

Gast
Hallo zusammen,

ich schreibe gerade einen TCP Server, der Strings von einer Smart Camera empfangen soll bzw dass auch schon tut. Die Code zum Empfangen sieht folgendermaßen aus:

Java:
server = new ServerSocket(11111);
socket = server.accept();
BufferedReader inCam1 = new BufferedReader(new InputStreamReader(socket.getInputStream()));
System.out.println(inCam1.readLine());

Leider beleibt das Programm bei der letzten Zeile stehen.

Wenn ich die Ausgabe folgendermaßen programmiere, funktioniert die ganze Geschichte wunderbar:

Java:
server = new ServerSocket(11111);
socket = server.accept();
BufferedReader inCam1 = new BufferedReader(new InputStreamReader(socket.getInputStream()));

char[] test = new char[8];
inCam1.read(test);

Ich habe den Strings, die von der Kamera gesendet werden, Suffixe wie \n, \r\n\ oder auch $ angehängt, damit sie von der Funktion readLine() als "line" erkannt werden. Leider scheint das aber nicht zu funktionieren. Wie muss denn ein String für diese Funktion aussehen, damit er als "line" erkannt wird?

Ich würde mich freuen, wenn mit jemand weiter Helfen könnte!

Viele Grüße
Daniel
 
Morgen Basti!

Versteh grad nicht ganz was du mit Code meinst, hab ihn doch oben gepostet!? 🙂
Die Strings die empfangen werden sollen haben folgende Form:

Cam[Kameranummer]: [Wert]

also z.B.

Cam1: 321.01

Ich habe versucht sie folgendermaßen zu senden, damit sie von readline() gelesen werden:

"Cam1: 321.01 \n"
"Cam1: 321.01 \r"
"Cam1: 321.01 \r\n"
"Cam1: 321.01 $"

hat aber alles nichts genützt. Deshalb bin ich grad etwas ratlos 🙂

Gruß
Daniel
 
achsooo 🙂

den code hab ich leider nicht. die smart camera wird über ein konfigurationstool via drag and drop geflasht, wobei ich dann einfach angeben kann, was für einen string sie senden soll.

der string wird wie in oben beschriebener form gesendet, das hab ich überprüft, d.h. es kommt auch wirklich z.B.
"Cam1: 387.01 \n"
an.

problem ist einfach, dass ich den string nicht mit readline lesen kann, sondern nur mit den anderen read funktionen. ich will den string halt nicht in einem char array speichern, weil ich nicht weiß wie lang er ist und ich sonst diese vierecke (unbekannte zeichen) im string hab und nicht feststellen kann, wo ein datenblock anfängt und aufhört.


gruß
daniel
 

Zurück
Oben