在处理struct.pack()和socket.htons()时,我得到了一些对我来说没有意义的结果。
>>> struct.pack("h", socket.htons(80))
'\x00P'
>>> struct.pack("h", socket.htons(81))
'\x00Q'
>>> struct.pack("h", socket.htons(82))
'\x00R'P,Q和R是从哪里来的,它们是什么意思?在医生里找不到任何关于他们的资料。
发布于 2013-10-07 13:49:46
P、Q、R的ASCII码分别为80、81、82。
>>> ord('P')
80在交互式shell中,可打印字符作为自己打印,而不是使用\xhh格式转义。
>>> hex(80)
'0x50'
>>> '\x50'
'P'
>>> '\xff'
'\xff'发布于 2016-06-07 09:55:10
Struck.pack():返回一个字节对象。就像这样:
>>> type(struct.pack("h", socket.htons(80)))
<class 'bytes'>当您在shell中显示对象时,她以十六进制方式显示(符号与0x),因此如果您将其转换为十进制,并比较ASCII地图,可能会找到原始源。
https://stackoverflow.com/questions/19226625
复制相似问题