Я программирую приложение для отправки данных с использованием сокетов UDP с Python 3.1.
Команде socket.send
требуются данные в байтовом формате.
У меня проблема в том, что пакетМне нужно отправить три разных поля, первое из которых содержит целочисленную переменную 16 бит (c_ushort
), так же как и второе поле, а третье - строка, длина которой может доходить до 900 символов.
Тогда я решил создать структуру, которая содержит эти три поля:
class PHAL_msg(Structure):
_fields_ = [("Port", c_ushort),
("Size", c_ushort),
("Text", c_wchar_p)]
Я ожидал бы, что смогу отправить этот объект, просто преобразовав его в объект байтов:
Msg_TX = PHAL_msg(Port=PHAL_ADDRESS, Size=PAYLOAD_SIZE, Text='HELLO woRLD!')
socket.send(bytes(Msg_TX))
,но это не работает.
Есть идеи, как это можно сделать?
С уважением