bro*_*sbp 2 python sockets binary parsing
当我运行以下python示例代码时,
tick = 0
while True:
tick += 1
print tick
data = s.recv(1024)
if (tick == 1) and data:
print 'from client: %s' %(data)
elif (tick == 2) and data:
print 'from client: %s' %(data)
Run Code Online (Sandbox Code Playgroud)
我知道了,
1
from client: client msg
2
from client: ?
3
Run Code Online (Sandbox Code Playgroud)
我的直觉告诉我第二次调用s.recv()实际上返回了一些数据.我相当肯定客户端没有发送`?' 字符.
所以我修改了希望打印`data'的第一个字节的代码,
elif (tick == 2) and data:
print 'from client: %s' %(data)
print struct.unpack("!B", data)
Run Code Online (Sandbox Code Playgroud)
但后来我得到一个回溯声明:"struct.error:unpack需要一个长度为1的字符串参数."
struct包似乎是处理套接字数据的标准方法.但是,这种情况似乎很奇怪.我通过打印和看到"?"来直观地接收数据.并且代码在条件中也有"和数据"但我无法解压缩.
是否有不同的方法来处理套接字的二进制数据?
elif (tick == 2) and data:
print 'from client: %r' % data # (note 1)
print struct.unpack("!B", data[0]) # (note 2)
Run Code Online (Sandbox Code Playgroud)
struct.unpack一个字节.| 归档时间: |
|
| 查看次数: |
8745 次 |
| 最近记录: |