我通过TCP获取数据并尝试将其与已知值(0xAD)进行比较:
b, addr = sock.recvfrom(1)
h = "".join(hex(ord(i)) for i in b)
print h
if h == str(0xad):
print "Work"
data = bytearray()
data.append(observer.OBSERVER_VALIDATION_BYTE)
sock.sendto(data, 0, addr)
我试着用上面显示的字符串来比较它们,试着用两种方式用字节来比较它们:
b[0] == 0xAD
或者
b2 = bytearray()
b2.append(0xAD)
b2[0] == b[0]
所有的比较都失败了,尽管print h
给了我0xad
更新
我定义了一组字节,如BYTE = 0xAD
我需要通过tcp发送它们并比较读取结果。
如果我像字符串(BYTE = '0xAD'
)那样定义它们,它提供了比较的能力,但是我不能将它们放在bytearray中发送,因为
bytearr.append(BYTE)
合理地返回一个错误。所以我不能把它们重新定义为字符串。那么,如何比较从sock.recvfrom
获得的bytes
和以我的方式声明的值。
已更新
如果您的问题是强制转换,则可以通过以下方式将字节强制转换为bytearray:
然后使用
==
比较bytearray相关问题 更多 >
编程相关推荐