0
我的代码如下所示:太大的数据输出造成蟒蛇插座损坏
class TCPHandler(SocketServer.StreamRequestHandler):
def handle(self):
while True:
self.data = self.rfile.read()
output = parse(self.data)
self.wfile.write(output+'\n')
的输出数据非常大,大约5MB。它导致以下异常:
self.wfile.write(output+'\n')
File "/usr/lib64/python2.6/socket.py", line 324, in write
self.flush()
File "/usr/lib64/python2.6/socket.py", line 303, in flush
self._sock.sendall(buffer(data, write_offset, buffer_size))
error: [Errno 32] Broken pipe
我应该在函数wfile.write()中添加一些参数。 任何想法,请提前致谢!
输入是二进制数据,readLine()对二进制数据不好。我认为问题仍然在self.wfile.write(输出+'\ n'),谢谢! – Jack
啊,我猜我学到了东西!我周围看到的唯一方法是将您一次写出的金额分解。不知道二进制数据有什么好处/坏处,但是如果已经解析了输出变量,你能分割吗?将其分解成更小的块可能会解决问题。 –
好的建议! – Jack