Socket -OutputStream in Stringliste zerlegen

  • Antworten:5
  • Bentwortet
Gerd-Ulrich M.
  • Forum-Beiträge: 770

22.02.2016, 08:16:15 via Website

Hallo,
für mein Projekt (eine Heizungssteuerung) erhalte ich von dem Steuer-Gateway über TCP einen Stream (OutputStream). Dieser Stream enthält Status der Steuerung sowie die Konfiguration der gesamten Anlage. Diese Infos sind in einzelne, sog. "Message"s aufgeteilt - getrennt durch ein Zeilenende-Zeichen ("\n").

Nun möchte ich gern den Stream genau an diesen Zeilenenden aufteilen und nach Möglichkeit in eine Liste/Array einfügen, damit ich auf die einzelnen Messages getrennt zugreifen kann. Da ich noch Anfänger bin, hatte ich erst ein ByteArrayOutputStream-Objekt probiert, aber das zerlegt den Stream ja in einzelne Bytes in einem Array - also nicht praktisch.

Langsam gehen mir die Suchbegriffe aus - wonach muss ich suchen, um diese Aufgabe zu lösen?
Danke und Gruss
G.-U.M.

N'y pas n'y
tu car tu
mal tu mal

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

22.02.2016, 08:33:49 via App

Hallo Gerd-Ulrich!

Wenn es ein endlicher Stream ist, dann kannst du es so machen:
http://stackoverflow.com/a/2549222

Wenn im Stream allerdings zyklisch neue Daten ankommen musst du das ganze etwas umbauen. Da empfehle ich einen ReceiveThread mit Callback wenn Daten ankommen.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Gerd-Ulrich M.
  • Forum-Beiträge: 770

22.02.2016, 08:53:49 via Website

Hallo,

das sieht gut aus. Zumal es wirklich ein endlicher Stream ist.

Wenn im Stream allerdings zyklisch neue Daten ankommen musst du das
ganze etwas umbauen. Da empfehle ich einen ReceiveThread mit Callback
wenn Daten ankommen.
Keine zyklischen Daten. Nur wenn ich eine TCP-Verbindung initiiere, erhalte ich meinen Stream.

Vielen Dank und Gruss
G.-U.M.

N'y pas n'y
tu car tu
mal tu mal

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

22.02.2016, 09:00:01 via App

Gut dann sollte das machbar sein ;)

LG

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Gerd-Ulrich M.
  • Forum-Beiträge: 770

22.02.2016, 09:30:09 via Website

Ich probiere es aus, allerdings geht das erst heute abend.
Dann melde ich mich nochmal.
Danke erstmal.

Gruss
G.-U.M.

N'y pas n'y
tu car tu
mal tu mal

Antworten
Gerd-Ulrich M.
  • Forum-Beiträge: 770

23.02.2016, 10:02:42 via Website

Hallo,

ist zwar schon nicht mehr Abend, aber probiert hab ich es.

Wenn es ein endlicher Stream ist, dann kannst du es so machen:
http://stackoverflow.com/a/2549222

Scheint grundsätzlich zu funktionieren. Jetzt muss ich nur noch dafür sorgen, dass mein try...catch-Reihenfolge im code passt - im Moment ist da was nicht richtig. Aber das ist eine andere Baustelle.

Edit: Es funktioniert. Das zweite Problem ist zwar immer noch da, aber nicht mehr Teil dieser Fragestellung.

Dankeschön.
Gruss
G.-U.M.

— geändert am 23.02.2016, 17:16:28

N'y pas n'y
tu car tu
mal tu mal

Antworten