Ich schreibe Code für ein System, das über Wifi kommuniziert, das aus einem Android-Gerät besteht, das UDP-Pakete über einen Router an einen Raspberry Pi sendet. Die zu sendenden Informationen sind sehr zeitkritisch, und um die Leistung zu verbessern, versuche ich, Python-Code für den Pi zu schreiben, um alte Pakete zu ignorieren, wenn es einen jüngeren im Puffer gibt (die Daten zeigen den Zustand einer Steuerschnittstelle an) - Die älteren Daten sind nutzlos. Da der Pi eine begrenzte Verarbeitungsleistung hat, möchte ich vermeiden, zusätzliche Arbeit an alten Daten zu leisten. Der Code ist zur Zeit wie folgt:Ignorieren alter UDP-Pakete Python
import time
import socket
#This section of code creates the socket and shows that it is running
UDP_IP = ''
UDP_PORT = 2016
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind((UDP_IP, UDP_PORT))
while(1):
data, addr = sock.recvfrom(1024) #receives UDP packets, buffer size is 1024 bytes
# do time critical stuff with data
ich mit SOCK_DGRAM weiß, dass, wenn ich die Puffergröße 8 (die Anzahl von Bytes in den Daten gesendet in) erhält es nur in 8 Bytes bringen und den Rest verwerfen - Würde dies mein Ziel erreichen, oder würde dies die ältesten 8 Bytes einbringen oder ein anderes Verhalten haben?
Vielen Dank für Ihre Hilfe!
Ich dachte, dass das der Fall war. Ich werde diese Lösung versuchen. Danke für Ihre Hilfe! –