Hallo
Welche Möglichkeit bietet sich an, wenn ich eine Nachricht via Socket (SSLServerSocket) lesen möchte? Die Nachricht wird vom Clienten folgendermaßen zusammengesetzt:
[10 Byte][2 Byte][X Byte][0A 00]
Dabei sind die ersten 10 Byte (oder Zeichen) zunächst unrelevant. Die darauffolgenden 2 Byte geben die Größe des Paketes insgesamt an. Danach folgen X Byte/Zeichen und am Ende der Seperator "0x0A 0x00". Leider kann nicht nicht einfach mit der Scanner-Klasse (useDelimiter()) den Seperator 0x0A verwenden, da dieser im Paket mehrmals vorkommt (damit werden quasi alle Befehle innerhalb eines Paketes getrennt) und ich kann auch nicht nur 0x00 als Seperator verwenden, da dieser auch innerhalb der ersten 10-12 Byte vorkommen kann. Zudem gibt es das Problem, dass Java selbst Strings nicht mit 0x00 trennt (nullterminiert?). Eine Möglichkeit wäre es jedoch, zunächst 12 Byte zu lesen, die komplette Größe der Nachricht auszulesen, dann x-12 Pakete weiterlesen und alles zu einem String zusammenzufügen. Leider verstehe ich nicht, wie ich das mit dem BufferedReader funktionieren soll. Hat jemand eine Idee dazu?
Vielen Dank,
th3flood
Welche Möglichkeit bietet sich an, wenn ich eine Nachricht via Socket (SSLServerSocket) lesen möchte? Die Nachricht wird vom Clienten folgendermaßen zusammengesetzt:
[10 Byte][2 Byte][X Byte][0A 00]
Dabei sind die ersten 10 Byte (oder Zeichen) zunächst unrelevant. Die darauffolgenden 2 Byte geben die Größe des Paketes insgesamt an. Danach folgen X Byte/Zeichen und am Ende der Seperator "0x0A 0x00". Leider kann nicht nicht einfach mit der Scanner-Klasse (useDelimiter()) den Seperator 0x0A verwenden, da dieser im Paket mehrmals vorkommt (damit werden quasi alle Befehle innerhalb eines Paketes getrennt) und ich kann auch nicht nur 0x00 als Seperator verwenden, da dieser auch innerhalb der ersten 10-12 Byte vorkommen kann. Zudem gibt es das Problem, dass Java selbst Strings nicht mit 0x00 trennt (nullterminiert?). Eine Möglichkeit wäre es jedoch, zunächst 12 Byte zu lesen, die komplette Größe der Nachricht auszulesen, dann x-12 Pakete weiterlesen und alles zu einem String zusammenzufügen. Leider verstehe ich nicht, wie ich das mit dem BufferedReader funktionieren soll. Hat jemand eine Idee dazu?
Vielen Dank,
th3flood