Python – Senden von Byte-Arrays über UDP ohne Listen oder Beizen?

Ich arbeite an einem Projekt, in dem eine UDP-Verbindung verwendet werden muss, um eine beliebige Datei zwischen zwei Unix-Maschinen zu senden. Der Hauptfaktor des Projektes ist es, Daten in Byte-Arrays zu codieren und sie zwischen den beiden Maschinen zu senden. Mein ursprünglicher Plan war, Byte-Arrays zu nehmen, eine Liste aus ihnen zu machen, und dann serialisieren sie mit Gurke und senden. Allerdings wurde mir gerade noch von meinem Instruktor gesagt, dass die Verwendung von Listen und Serialisierung mit Gurke keine akzeptable Lösung für das Problem war. Um seine Worte zu zitieren:

"Du musst ganzzahlige, string- und file-Objekte selbst verschlüsseln und decodieren, damit du das im Handout definierte Protokoll befolgst." [Dieses Protokoll bezieht sich auf die Erstellung von Segmenten aus Byte-Arrays, wobei jedes Segment 4-Byte-Array für Dateigröße, 2-Byte-Array für Dateinamen und 1-Byte-Array für ID-Flag sowie ein 'Payload' Byte-Array enthält Variiert in der Länge basierend auf dem, was gesendet wird.]

Ich bin nicht wirklich sicher, damit zu gehen. Ich habe Byte-Arrays, die ich an die andere Maschine schicken muss, aber meine ersten beiden Ideen dazu sind nicht erlaubt. Ich kann die Byte-Arrays und die UDP-Verbindungen (die ich beide unabhängig getestet habe) machen, aber das Senden von ihnen stört mich. Gibt es eine gute Lösung für mein Pythonproblem?

  • Senden und Empfangen von Arrays über Sockets
  • Lesen aller Daten aus einer UDP-Buchse
  • TTL des eingehenden UDP-Pakets in Python erhalten
  • Entfernen von Padding aus UDP-Paketen in Python (Linux)
  • Was ist der beste Weg, um Bit Field Manipulation in Python zu tun?
  • Senden von Datei über UDP in Fragmente unterteilt
  • Einfachste Weg, um Asynchronous Socket Reading von UDP in Python?
  • Get () set () memcached listening on UDP mit Python
  • One Solution collect form web for “Python – Senden von Byte-Arrays über UDP ohne Listen oder Beizen?”

    Ein Byte-Array in Python ist am besten durch eine str (ein einfacher String) dargestellt. Ihre Arbeit wird wahrscheinlich sein, um diese Byte-Array nach dieser Protokoll-Spezifikation Sie haben zu schaffen. Achten Sie darauf, dass es sich um eine str handelt und senden Sie es über die Netzwerkfunktionen für den Zugriff auf Steckdosen.

    Um eine Liste von Integern (Bytes) in eine str zu konvertieren, verwenden Sie Folgendes:

     ''.join(chr(c) for c in integer_list) 

    Oder vielleicht kannst du die str der ersten Stelle bauen (ohne über eine Liste von Zahlen zu gehen).

    Python ist die beste Programmiersprache der Welt.