У меня есть пакет, который после де-сериализации (я видел это в тестах примера python) выглядит так:
header = Container:
pkt_type = PacketExample
unprotected_payload_length = 19
protected_payload_length = None
version = 0
unprotected_payload = Container:
someid = u'FF00112233445566' (total 16)
protected_payload = None
Теперь сериализованный пакет выглядит так ( снова из примера python):
b'\xdd\x02\x00\x13\x00\x00\x00\x10FF00112233445566\x00'
, а это описание сообщения, как пакет должен выглядеть:
Header
Offset (hex) Offset (dec) Type Description
0x00 0 uint16 Packet Type
0x02 2 uint16 Unprotected Payload Length
0x04 4 uint16 *Protected Payload Length
0x08 8 uint16 Version
PacketExample value: 0xDD02
Unprotected payload:
Offset (hex) Offset (dec) Type Description
0x00 0 String Some ID
Теперь мой вопрос, как должен ли я создать DatagramPacket из этих деталей с таким примером? Если я хочу создать PacketExample, я должен сделать это так?
String someId = "FF00112233445566";
String version = "0";
String protected_packet = "";
String packetAsString = "DD02" + someId.length() + protected_packet.length() + version + someId;
DatagramPacket datagram = new DatagramPacket(packetAsString.toByteArray(), 0, packetAsString.length);
, потому что это не работает для меня, и я не получаю тот же пакет, что и в примере (b'\xdd\x02\x00\x13\x00\x00\x00\x10FF00112233445566\x00'
)