根据python文档,python的socket ()方法返回“字节”类型的数组。
但是,如果打印出这个数组,看起来不像字节的东西也会出现:
\xd9\x01\x01\xa4\xe9\xcbV6\x15\xed|>g5\xfa\xbd\xe9Q\x19@i\x18\xff\python字节对象是否有一些内部错误报告或其他什么?哪些不是返回的实际字节的字节对象?
还有一些更奇怪的例子:
\x00w\xd4\x04;\x9c\x0b}>P]\xa4\xbd\xa5n:9x\xe3>9\xd2/~8\
\x01\x01\x1b ,Y\x00\x00\x00\x00\x00\xf4
\xa0A\n\xd7tB}\xed,\xc0\x00\发布于 2016-10-03 13:23:25
recv确实返回原始字节。只有在打印过程中,Python字节才会采用ASCII编码,如果该值属于ASCII可打印值的范围,它将将其打印为由该8位值表示的ASCII字符。如果不是ASCII可打印的,它就用\x转义值并打印十六进制。
注意,如果使用python3.5,可以对上面的字节调用.hex,并查看十六进制值。这将确认您正在获得所期望的值。
您可以通过使用Wireshark或类似的方法来验证您发送的值是否符合您的期望,只有在打印中才能看到这一点。
https://stackoverflow.com/questions/39832670
复制相似问题