Socket Nullterminierten String lesen

th3flood

Mitglied
Hallo :D
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
 

FArt

Top Contributor
Du liest den Stream byteweise aus, ignorierst die ersten 10 Byte, benutzt die nächsten zwei Bytes um dir auszurechnen, wie viele Bytes du noch lesen musst und liest dann so lange bis die Bytefolge 0x0a 0x00 kommt.
Warum der Stream die Länge angibt und dann aber über Endemarke arbeitet das weiß wohl nur derjenige, der diese Protokoll konzipiert hat. Oder sind mehrere Strings in einem "Paket"? Dann markieren die zwei Byte das Ende jedes Textes und die Länge das gesamte "Paket".
 

th3flood

Mitglied
Hi,
welche Klasse sollte für das Lesen von einzelnen Bytes am besten nutzen? Und zum Protokoll: Ja, es ist etwas eigen ;-P Aber ich frage mich, ob es nicht theoretisch einen kleinen Geschwindigkeitsvorteil bietet, wenn man "nur" eine bestimmte Anzahl von Bytes lesen und nicht jedes einzelne Byte z.B. auf ein 0x0D ("\r") prüfen muss?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T String von Client zu Server kommt nicht an Netzwerkprogrammierung 92
T Brauche Hilfe beim GET-String für HttpURLConnection Netzwerkprogrammierung 4
T server empfängt nur 1 Buchstaben vom String Netzwerkprogrammierung 1
N Name eines Attributes aus einem festen String und einer Variablen generieren Netzwerkprogrammierung 5
S Socket String InputStream in hex umwandeln Netzwerkprogrammierung 1
T Socket Gleiche String ungleich? Netzwerkprogrammierung 8
M Socket String Arrays über Socket an Server schicken Netzwerkprogrammierung 2
F String in Datenbank speichern Netzwerkprogrammierung 1
I RMI String Netzwerkprogrammierung 2
precoc String Array versenden Netzwerkprogrammierung 7
T Socket String zu Socket Netzwerkprogrammierung 26
7 String an Server Netzwerkprogrammierung 2
lumo String[] wird zu null bei Serialisierung Netzwerkprogrammierung 8
S WebService, 4-stelliger String (Jahr) als Calendar Netzwerkprogrammierung 5
M String an PHP Script aus Java übergeben Netzwerkprogrammierung 12
N String als byte Array über Socket versenden Netzwerkprogrammierung 8
M Messenger - String oder Objekte Netzwerkprogrammierung 4
J Datei übertragen ja String + datei übertragen nein Netzwerkprogrammierung 5
H String Array durch einen Stream schicken. Netzwerkprogrammierung 4
N Socket Stream in String Netzwerkprogrammierung 4
J Browser-String angeben Netzwerkprogrammierung 5
S String[] über Socket senden Netzwerkprogrammierung 3
F Stream wird als Char übertragen. Char -> in String umwand Netzwerkprogrammierung 5
G String in InetAddres umwandeln klappt nicht Netzwerkprogrammierung 5
A String per ByteBuffer empfangen? Netzwerkprogrammierung 6
ModellbahnerTT Problem feste String ins Netzwerk zu geben Netzwerkprogrammierung 5
G UTF-8 in STring umwandeln oder umgedreht Netzwerkprogrammierung 12
F String in eine URL umwandeln Netzwerkprogrammierung 7
P string over net Netzwerkprogrammierung 4
T Html-Source über URL in einen String speichern? Netzwerkprogrammierung 16
B HEX String zu einem Byte Array ? *verzweiflung* :( Netzwerkprogrammierung 16
K String zurück liefern ! Netzwerkprogrammierung 4
S SSLSocketFactory.createSocket(String hostname, int port),wo? Netzwerkprogrammierung 5
O Ip-String in byte[]-Array umwandeln? Netzwerkprogrammierung 3
C gesendeten String einlesen Netzwerkprogrammierung 3
G String to Socket ? Netzwerkprogrammierung 3
A StringCorruptedException: invalid String header Netzwerkprogrammierung 2
W Socket Server -> lesen von / schreiben zu php-script Netzwerkprogrammierung 6
B Versuch mit Socket etwas zu lesen und zu schreiben Netzwerkprogrammierung 15
Z Kann nicht Daten vom Server lesen Socket Netzwerkprogrammierung 10
OnDemand Json Objekt leeres Array beim lesen Netzwerkprogrammierung 9
I Offene Verbindungen lesen(Ressourcenmonitor lesen) Netzwerkprogrammierung 2
A FTP wie kann ich von java auf datei in fpt://192.168.178.1 lesen/schreiben? Netzwerkprogrammierung 3
C Gerenderte Website nach der ausführung von JavaScript als HTML Code aus lesen Netzwerkprogrammierung 4
B Java+Grbl: G-Code Befehle mit Java an Arduino senden und lesen Netzwerkprogrammierung 1
M TCP Verbindung Byte-weise lesen? Netzwerkprogrammierung 5
D GZIP InputStream lesen ohne zu encoden Netzwerkprogrammierung 1
L FTP Lesen einer Datei vom Server - Aufgehangen Netzwerkprogrammierung 0
C Datei über Socket schreiben und Ereignis lesen Netzwerkprogrammierung 9
B Socket Aufhängen beim Lesen Netzwerkprogrammierung 4
C Socket Probleme beim Lesen und Schreiben aus/in einen Socket Netzwerkprogrammierung 2
D Aus einer URL die Dateien lesen Netzwerkprogrammierung 5
P FTP Nochmal wachsende Datei per FTP lesen Netzwerkprogrammierung 9
P Wachsende Datei per FTP lesen Netzwerkprogrammierung 2
K Byte für Byte aus InputStream lesen Netzwerkprogrammierung 5
J VideoStream von Webseite lesen/speichern Netzwerkprogrammierung 7
J UDP port packete lesen,wenn dieser besetzt ist Netzwerkprogrammierung 3
S Thread, Daten vom Socket lesen Netzwerkprogrammierung 2
Z File über Socket lesen Netzwerkprogrammierung 3
W aktuelle Datum vom Server lesen! Netzwerkprogrammierung 5
T Inputstream -> verschiedene Objekte lesen Netzwerkprogrammierung 3
K Socket Daten lesen ohne Längenangabe Netzwerkprogrammierung 19
L Java über php datei lesen? Netzwerkprogrammierung 18
Y Problem mit ObjectInputStream beim lesen vom Socket Netzwerkprogrammierung 10
T ServerSocket bleibt beim lesen von Input hängen Netzwerkprogrammierung 2
K Vom Socket lesen wenn das Gegenüber schon disconnected ist? Netzwerkprogrammierung 12
M lesen vom Client geht nicht Netzwerkprogrammierung 10
M Bytes aus Stream lesen Netzwerkprogrammierung 3
G unbekannte Zeichen beim senden und lesen Netzwerkprogrammierung 2
J Mit der File Api Dateien von anderen Rechnern lesen ? Netzwerkprogrammierung 3
F Netzwerktraffic lesen Netzwerkprogrammierung 16
E RTP Packet lesen - Byte Problem 0xFFFFFF80 statt 0x80 Netzwerkprogrammierung 7
S mit HttpClient Seiteninhalt lesen Netzwerkprogrammierung 8
R Mittels BufferedReader Objekte lesen? Netzwerkprogrammierung 5
G ProxySettings aus Internet Explorer lesen Netzwerkprogrammierung 8
T Sockets Verständnisfrage: abwechelnd lesen-schreiben Netzwerkprogrammierung 4
N Von nem Server per getInputStream in meheren Varianten lesen Netzwerkprogrammierung 13
thE_29 Vor dem ersten Posten bitte lesen! Netzwerkprogrammierung 0
S socket aus hashmap lesen -> geschlossen Netzwerkprogrammierung 2
J Vom BufferedReader lesen -> hängt ohne Fehler,ohne Except Netzwerkprogrammierung 2
N Username aus Java lesen Netzwerkprogrammierung 2
A Exception bei Cookie lesen Netzwerkprogrammierung 2
C POST-Parameter aus HTML-Script lesen Netzwerkprogrammierung 1

Ähnliche Java Themen


Oben