python 将字符串转化成16进制进行UDP的发送
转载自:Python UDP Socket 16进制数据发送 | 北京小芽科技
重点是struct 中pack函数的使用。因为Python中没有字节(Byte)类型(可以把这里的字符串理解为字节流),所以得用到python的struct模块来进行字节流转换。
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下固定写’x00x00x00......x1ax1a........‘系统是可以识别出来的。但是我们想用拼接的方式来把上面的字符串转化的话是相当麻烦的,几乎每次都是出来字符串的形式 ,实际上,直接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模块来进行字节流转换。
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。