我在发送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个字节)字节)
任何建议是什么问题以及如何解决?
答案 0 :(得分:0)
更改编码即可解决问题
sock.sendto(message.encode('charmap'), (DST_IP, int(DST_PORT)))