Я установил соединение сокета UDP между двумя машинами Linux и могу легко отправить, например, b"Hello, World!"
. Но теперь мне нужно отправить приведенный ниже CAN-кадр
from can import Message
send_msg = Message(data=[1, 2, 3, 4, 5])
Итак, если я напечатаю send_msg
, он покажет:
Timestamp: 0.000000 ID: 00000000 X DLC: 5 01 02 03 04 05
Я хочу, чтобы это было напечатано на принимающей стороне. Коды отправки и получения, которые я использую, приведены ниже:
Отправка:
import socket
UDP_IP = "10.140.189.249"
UDP_PORT = 5005
from can import Message
send_msg = Message(data=[1, 2, 3, 4, 5])
print(send_msg)
MESSAGE = send_msg
print("UDP target IP: %s" % UDP_IP)
print("UDP target port: %s" % UDP_PORT)
print("message: %s" % MESSAGE)
sock = socket.socket(socket.AF_INET, # Internet
socket.SOCK_DGRAM) # UDP
sock.sendto(MESSAGE, (UDP_IP, UDP_PORT))
Здесь я знаю, что MESSAGE = send_msg
неверно.
Прием
import socket
UDP_IP = "0.0.0.0"
UDP_PORT = 5005
sock = socket.socket(socket.AF_INET, # Internet
socket.SOCK_DGRAM) # UDP
sock.bind((UDP_IP, UDP_PORT))
while True:
rec_msg, addr = sock.recvfrom(1024) # buffer size is 1024 bytes
print("received message: %s" % rec_msg)
Пожалуйста, сообщите