python socket 发送十六进制_Python:如何通过Python3中的socket发送十六进制字符串而不进行编码?...

我在python2中执行了socket通信,它工作得很好,我必须让它再次在python3中工作。我累了结构编码()很多格式的东西,但网络的另一端无法识别我发送的内容。我唯一知道的是python3str类型在默认情况下被编码为Unicode uft-8,我非常确定这里的关键问题是python2 str type的格式是什么。我必须发送与python2 str中存储的内容完全相同的内容,但棘手的是python3的套接字只发送编码的unicode字节或其他缓冲区接口,而不是python2中包含原始数据的str类型。示例如下:

在Python2中:data = 'AA060100B155'

datasplit = [fulldata[i: i+2] for i in range(0, len(fulldata), 2)]

senddata = ''

for item in datasplit:

itemdec = chr(int(item, 16))

senddata += itemdec

print(senddata)

#'\xaa\x06\x01\x00\xb1U',which is the data I need

在python3中,它似乎只能使用发送数据.encode(),但这不是我想要的格式。你可以试试:

^{pr2}$

要了解两个senddatas的区别,有趣的是使用utf-8时它编码错误。在

我需要的是python3str类型中存储的数据,但我的问题是如何在不编码的情况下发送该字符串的数据?或者如何在Python3中执行相同的str类型的Python2?在

有人能帮我吗?在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值