您的位置:首页 > 编程语言 > Python开发

python 将字符串转化成16进制进行UDP的发送

2016-02-02 16:59 645 查看
转载自:Python UDP Socket 16进制数据发送 | 北京小芽科技
http://xiaoyatec.com/2015/12/08/python-udp-socket-16%E8%BF%9B%E5%88%B6%E6%95%B0%E6%8D%AE%E5%8F%91%E9%80%81/ http://blog.sina.com.cn/s/blog_4b5039210100f1tu.html
现在有一字符串‘00 00 00 00 00 00 00 00 00 00 00 00 00 00 1a fe 34 f7 52

想生成对应的十六进制包来进行发送。

如果你直接在python下固定写’\x00\x00\x00......\x1a\x1a........‘系统是可以识别出来的。但是我们想用拼接的方式来把上面的字符串转化的话是相当麻烦的,几乎每次都是出来字符串的形式 ,实际上,直接print的话,如果是乱码就对了。

def strconvert(s):
s=str(s).strip().split(' ')
my=r'\x'
fin=''
for i in range(len(s)):
fin=fin+struct.pack('B',int(s[i],16))
return fin


重点是struct 中pack函数的使用。因为Python中没有字节(Byte)类型(可以把这里的字符串理解为字节流),所以得用到python的struct模块来进行字节流转换。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: