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






