-1

我想编写一个 Python 程序,它从网络套接字获取数据,然后扫描数据以查找特定的数据序列。

“从网络获取”位工作正常,我可以毫无问题地将检索到的数据转储到文件中,但是试图让 Python 一次实际扫描一个字节的数据是行不通的。

每当我将代码放入“for byte”循环中尝试工作时,我都不会发生任何事情。

当我运行下面的程序时,byte.out 的大小通常是 buf.out 大小的两倍,我认为这是指出问题所在的主要症状。如果内部循环真的是逐字节处理数据,我希望两个输出文件的大小相同。

我的感觉是“for byte in 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
4

1 回答 1

0

chr(buf)应该给出一个 TypeError。利用

for byte in buf:
于 2013-05-23T11:39:56.417 回答