python:发送UDP消息

时间:2018-08-12 10:52:38

标签: sockets udp

我在发送UDP数据包时遇到以下挑战: 该数据包长40个字节,其中除某些计数器和校验和外,所有字段均保持不变。

header='\xaf\x18\x25\x25'
message= 'ABCDEFGHIGKLMNOPQRTSUVXYZ0123456'
i=1

#do some checksum calculation and store result into the checksum variable

message=header + chr(i) + data + chr(checksum >>8) + chr(checksum & 0xFF)
sock.sendto(message.encode('utf-8'), (DST_IP, int(DST_PORT)))

但是,看一下Wireshk,我可以看到消息是43个字节,其中我在第一个位置处有一个0xC2而不是实际标头第一个字节以及校验和MSB和LSB之前的0XC3和0xC2(这是另外3个字节)字节)

任何建议是什么问题以及如何解决?

1 个答案:

答案 0 :(得分:0)

更改编码即可解决问题

sock.sendto(message.encode('charmap'), (DST_IP, int(DST_PORT)))