我想编写一个从网络套接字获取数据的Python程序,然后扫描数据以查找特定的数据序列。
'从网络中获取'位工作正常,我可以将检索到的数据转储到文件中,没有问题,但是试图让Python实际上一次扫描一个字节的数据是不行的。
每当我将代码放入'for byte'循环中尝试工作时,我就不会发生任何事情。
当我运行下面的程序时,byte.out的大小通常是buf.out大小的两倍,我认为这是一个指向出错的主要症状。如果内部循环实际上是逐字节处理数据,我希望两个输出文件的大小相同。
我的感觉是“chr(buf)中的字节有问题:”但我真的不知道该放什么。
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0)
fh1 = open("buf.out", 'wb')
fh2 = open("byte.out", 'wb')
s.connect(("obscured.url", 9999))
s.send('GET /xx HTTP/1.1\nHost obscured.url:9999\n\n')
for i in range(10):
buf = s.recv(1024)
for byte in chr(buf):
print >>fh2, byte
print >>fh1, buf
s.close
答案 0 :(得分:0)
chr(buf)
应该给出一个TypeError。使用
for byte in buf: