ich sitze derzeit an einem kleinen Projekt und zwar möchte ich mithilfe des UDP Sockets in Python zwei Teilprozesse, die natürlich miteinander kommunizieren können. Und zwar möchte ich am Ende mithilfe dessen einen Sinusverlauf erstellen. Ich möchte, dass der erste Prozess Zeit und Amplitude an den zweiten Prozess weitergibt und das schrittweise. Und der zweite Prozess soll die Daten aufnehmen und dann die Punkte plotten. Leider habe ich da ein paar Schwierigkeiten und würde mich über Tipps von euch freuen

Was ich bisher habe:
- Erster Prozess:
import socket
import numpy as np
import matplotlib.pyplot as plot
import pickle
if __name__ == "__main__":
host = "127.0.0.1"
port = 4455
addr = (host, port)
HEADERSIZE = 10
# Create a UDP socket at client side
UDPClientSocket = socket.socket(family=socket.AF_INET, type=socket.SOCK_DGRAM)
# Send to server using created UDP socket
time = 0
data = dict()
data['time'] = []
data['amplitude'] = []
while True:
amplitude = np.sin(time)
data['time'].append(time)
data['amplitude'].append(amplitude)
msg = pickle.dumps(data)
print(f'{len(msg)}')
print(f'{len(msg):<{HEADERSIZE}}')
msg = bytes(f'{len(msg):<{HEADERSIZE}}', 'utf-8') + msg
time = time + 0.1
UDPClientSocket.sendto(msg, addr)
msg, addr = UDPClientSocket.recvfrom(2048)
print(f"Server: {msg}")
- Zweiter Prozess:
import socket
import numpy as np
import matplotlib.pyplot as plot
import pickle
if __name__ == "__main__":
host = "127.0.0.1"
port = 4455
HEADERSIZE = 10
# Create a datagram socket
UDPServerSocket = socket.socket(family=socket.AF_INET, type=socket.SOCK_DGRAM)
# Bind to address and ip
UDPServerSocket.bind((host, port))
print("UDP server up and listening")
# Listen for incoming datagrams
while True:
msg, addr = UDPServerSocket.recvfrom(2048)
print(f"Client: {msg}")
# msg entpacken
msg = pickle.dumps(msg).decode()
plot.plot(msg)
# Give a title for the sine wave plot
plot.title('Sine wave')
# Give x axis label for the sine wave plot
plot.xlabel('Time')
# Give y axis label for the sine wave plot
plot.ylabel('Amplitude = sin(time)')
plot.grid(True, which='both')
plot.axhline(y=0, color='k')
# Display the sine wave
plot.show()
# Sending a reply to client
UDPServerSocket.sendto(msg, addr)
Wenn ich das so ausführe, wird mir folgende Fehlermeldung angezeigt: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte
Ich würde mich mega freuen, wenn mir da jemand helfen könnte.