Python: Senden Integer-Wert, der über socket
Ich bin mit Python zu kommunizieren, Daten über ein TCP-socket zwischen einem server-und client-Anwendung. Ich brauche zum senden von 4 bytes, welche eine Daten-Beispiel. Die erste Probe ist ein 32-bit unsigned integer. Wie kann ich senden Sie diese 4 bytes raw-Daten durch die Steckdose?
Möchte ich die Daten senden: 0x12345678 und 0xFEDCBA98
Die raw-Daten, die gesendet werden über die Buchse sollte genau das sein, wenn ich es gelesen habe auf wireshark/tcpdump/etc. Ich will nicht jeden Wert in die 8 hex-zahlen dargestellt werden als ascii-Zeichen, ich will den raw-Daten intakt bleiben.
Danke
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die main-Methode zum senden von Binärdaten in Python ist mit dem struct Modul.
Beispielsweise für die Verpackung 3 von 4-byte-unsigned-Ganzzahlen erfolgt
Hinweis: halten Sie den endian Typ korrekt ist, mit "<", ">", und so weiter.
könnten Sie bytes(). Das, was ich zum senden von strings über ein Netzwerk, aber Sie können es verwenden, für ints als gut. Ihr Einsatz bytes([3])
Edit: bytes konvertiert einen int (3) in bytes. eine Zeichenfolge von bytes dargestellt als b'\x03'. so wie dein byte-string: 0x12345678 wäre b'\x12345678'
überprüfen Sie die Dokumentation für mehr info:
https://docs.python.org/3.1/library/functions.html#bytes