Как создать правильный пакет дейтаграмм с заголовком в android? - PullRequest
0 голосов
/ 04 августа 2020

У меня есть пакет, который после де-сериализации (я видел это в тестах примера 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' )

...