如何通过Python socket.send()发送除字符串以外的任何内容

时间:2012-01-18 01:35:10

标签: python sockets hex

我非常擅长使用Python进行编程,但出于必要,我必须非常快速地将一些东西放在一起。

我试图通过UDP发送一些数据,除了事实,当我执行socket.send()时,我必须以字符串形式输入数据。这是我的程序,所以你可以看到我在做什么:

import socket


IPADDR = '8.4.2.1'
PORTNUM = 10000

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, 0)

s.connect((IPADDR, PORTNUM))

s.send('test string'.encode('hex'))

s.close()

我怎么能得到它以便我可以像s.send(ff:23:25:a1)那样用十六进制做一些事情,所以当我在Wireshark中查看数据包的数据部分时,我看到了ff :23:25:A1

1 个答案:

答案 0 :(得分:14)

您使用的是Python 2.7还是3.2?

在3.2中你可以做到:

data = bytes.fromhex('01AF23')
s.send(data)

数据将等于:

b'\x01\xAF\x23'

在2.7中,同样可以通过以下方式实现:

data = '01AF23'.decode('hex')