Guten Abend,
ich glaube mein Titel ist etwas unglücklich gewählt und vielleicht wurde das auch schon irgendwie beantwortet aber ich habe bisher nichts dazu gefunden, zumindest nicht in der Form.
Ich würde gerne wissen wie man den Inhalt eines TCP Packetes richtig in seinem Programm verarbeitet.
Wenn ich jetzt immer ein festes Packet habe kann ich natürlich die Plätze der Informationen direkt ansprechen, also beispielsweise wie:
Aber wie mache ich es wenn ich ein Packet habe wo ich am Anfang einen Inhalt habe der nicht immer gesendet wird sondern beispielsweise nur für den 1. Login des Tages mitgesendet wird.
Ich habe das Problem bisher so gelöst das ich das Byte-Array mit einer For-Schleife ablaufe bis ich zu einem festen Inhalt komme, als Beispieler der Loginname und ab da sind wieder alle Informationen fest verteilt.
Also um dann beispielsweise die Information über das Level des Spielers anzusprechen nehme ich jetzt den Index des Loginnamen und addiere einfach noch den Unterschied bis zur Position an der die Information des Levels steht.
Beispiel:
Erscheint mir aber als eine sehr ungepflegte Lösung, vielleicht kommt es mir auch nur so vor da ich noch ein Anfänger bin, aber ich würde gerne mal eure Meinung dazu hören und ob es vielleicht bessere Lösungsvorschläge gibt und andere Methode die Informationen eines TCP Packets in seinem Programm zu verwenden.
Grüße,
ravvon
ich glaube mein Titel ist etwas unglücklich gewählt und vielleicht wurde das auch schon irgendwie beantwortet aber ich habe bisher nichts dazu gefunden, zumindest nicht in der Form.
Ich würde gerne wissen wie man den Inhalt eines TCP Packetes richtig in seinem Programm verarbeitet.
Wenn ich jetzt immer ein festes Packet habe kann ich natürlich die Plätze der Informationen direkt ansprechen, also beispielsweise wie:
Code:
lvl = BitConverter.ToInt16(bytes[1], bytes[2])
Ich habe das Problem bisher so gelöst das ich das Byte-Array mit einer For-Schleife ablaufe bis ich zu einem festen Inhalt komme, als Beispieler der Loginname und ab da sind wieder alle Informationen fest verteilt.
Also um dann beispielsweise die Information über das Level des Spielers anzusprechen nehme ich jetzt den Index des Loginnamen und addiere einfach noch den Unterschied bis zur Position an der die Information des Levels steht.
Beispiel:
Code:
i As Integer For i = 0 To bytes.Length Step 1 If bytes[i] = "24" And bytes[i + 1] = "25" Then Exit For End If Next lvl = BitConverter.ToInt16(bytes[i + 25], bytes[i + 26])
Grüße,
ravvon