Moin,
ich habe hier ein Server-Protocol, mit verschiedenen Packeten und stehe nun vor der Aufgabe, alles irgendwie in strukturierte Bytearrays zu verpacken. In C# ist das recht einfach, da es fixe Datentypen gibt. Wie ich das in Python realisiere, dazu fehlt mir momentan der Ansatz.
Das Login-Packet sieht z.B. so aus:
BYTE[1] Command
BYTE[30] Username
BYTE[30] Password
Heißt, das erste Byte des Packets gibt an um welches Packet es sich handelt. In diesem Fall ist 0x80 das Login-Packet. Dann folgen zwei Bytearrays mit jeweils einer Länge von 30 für den Usernamen und das Passwort. Aus dem Ganzen muss dann ein großes Bytearray werden, das an den Server geschickt wird. Ich weiß wie man mit den Verschiebeoperatoren (>> und <<) ein Bytearray auseinandernimmt, aber nicht wie man eins in Python zusammensetzt. Bin für jede Hilfe dankbar.
Client-Server-Protocol: Daten in ein Bytearray verpacken
Dazu gibt es das eingebaute struct-Modul.
Code: Alles auswählen
import struct
def main():
command = 0x80
username = b"peter pasulke"
password = b"streng geheim"
message = struct.pack("B30s30s", command, username, password)
print(repr(message))
if __name__ == '__main__':
main()
-
- User
- Beiträge: 19
- Registriert: Sonntag 21. Mai 2017, 20:31
- Wohnort: Hambuach
Vielen Dank, ich probiere das aus.