ich versuche einem Server per TCP ein Packet für einen Request von meinen Accountdaten zu schicken, die benötigten Packets habe ich bereits gefiltert, analysiert und nachgebaut, einziges Problem ist, der Header des Packets, welches ich an den Server schicke ist ein Kauderwelsch wenn ich ihn als Ascii oder Dezimalzahl darstelle, das heißt er muss als ein Bytearray verschickt werden.
Mein Problem ist jetzt, dass die anderen Daten als String gespeichert werden und ich zwar die einzelnen Strings in Bytearrays formatieren kann, jedoch schlagen alle Versuche fehl das ganze in ein großes Packet zu stopfen und zu verschicken.
Ich habe sowieso irgendwie das Gefühl ich benutze hier die Holzhammermethode und es geht eigentlich viel viel eleganter, ich weiß nur nicht wie.
Also falls jemand irgendwie nen Ansatz für mich hat wie ich das ganze eleganter lösen könnte würde ich mich wirklich freuen.
Nachdem ich meinen Code hier nochmal angeschaut habe bete ich um einen eleganteren Lösungsweg. ;D
Hier noch der relevante Code und Ablauf wie ich das Packet zusammenstelle:
Code:
Dim account As String //wichtige Daten für das Packet Dim agent As String //Funktion um String in ein Bytearray zu encoden Public Function TextStringToByteArray(ByRef str As String) As Byte() Dim enc As System.Text.Encoding = System.Text.Encoding.Default Return enc.GetBytes(str) End Function //Funktion die das fertige Packet baut Private Function buildPacket() Dim message As Byte() = {"01,81"} //zu verschickende Nachricht, Header als Startwert Dim b_account as Byte() = TextStringToByteArray(account) Dim b_agent as Byte() = TextStringToByteArray(agent) //Zusammenfügen der Arrays Array.Resize(message, message.Length + b_account.Length) Array.Copy(b_account, 0, message, message.Length - b_account.Length, b_account.Length) Array.Resize(message, message.Length + b_agent.Length) Array.Copy(b_agent, 0, message, message.Length - b_agent.Length, b_agent.Length) //return message //Ausgabe meines Arrays als String zur Überprüfung Dim strf As String = "" For Each b As Byte In b_length strf = strf + b.ToString("x").ToUpper Next Return strf End Function