python socket发送16进制数据_Python UDP Socket 16进制数据发送

注:此篇文章首次发表于我的一篇CSDN博客里边,现转载于此。

今天琢磨了一下Python UDP Socket 16进制数据发送。

原以为UDP发送和接受的都是字符,怎么能够发送16进制?但细想,其实接收的都是“010100101******”这样的东东。所有,要想发送16进制也是可以做到的。

要实现这个东东,就得用到字节byte,因为Python中没有字节(Byte)类型(可以把这里的字符串理解为字节流),所以得用到python的struct模块来进行字节流转换。

我的思路是这样子的:

1、首先假设有这样一个16进制字符串str: B1 C2 FF 82

2、利用python的字符数组符号分割字符串str,把字符串里面的16进制数据字符分割出来:“B1”, “C2″, “FF”,”82″;

3、通过函数int( s, 16)把16进制转换成整形数【函数里面s代表一个16进制字符串】;

4、利用python提供的struct模块里的struct.pack(fmt,v1, v2, …)函数把整形转换成字节流【具体知识请看附录】;

5、利用socket.sendto函数发送字节流。

【例子:部分重点代码】

C++

addr1 = ("192.168.1.100", "8000")

UDPSock = socket(AF_INET, SOCK_DGRAM)

str = "B1C2FF82" #获取字符测

str1 = "" #初始化

s

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值