我有一个程序需要通过UDP发送非常特定的字节字符串。我最终得到了一个像这样的短程序(python2.7,3.2版本只是根据需要使用b''进行转换)来发送字节:
sock = socket.socket(socket.AF_INET,
socket.SOCK_DGRAM)
UDP_IP = "101.101.101.101" #Target IP Address
UDP_PORT = 1010
#Create a socket
def sendPacket(MESSAGE):
sock.sendto(MESSAGE, (UDP_IP, UDP_PORT)) #Send message to UDP port
if __name__ == '__main__':
sendPacket('5f00000001000701cc0000001f8b')
然而,虽然这可以被另一个Python套接字解释为正确的值,但Wireshark以不同的方式获取值(下面)。使用Perl重复此操作,我遇到了同样的问题:
35 66 30 30 30 30 30 30 30 30 31 30 30 37
30 31 63 63 30 30 30 30 30 31 66 38 62
这必须意味着当字符串已经是那种格式时,字节串会在字节数组中进一步转换!问题是,如何发送一个字节流,以便它以与开始时相同的数据到达?
答案 0 :(得分:3)
您的程序正在发送您要求的内容。尝试:
sendPacket('\x5f\x00\x00\x00\x01\x00\x07\x01\xcc\x00\x00\x00\x1f\x8b')