当我尝试接收大量数据时,它会被截断,我必须按Enter才能获取其余数据。起初我能够增加一点,但它仍然不会收到全部。正如你所看到的,我增加了conn.recv()上的缓冲区,但它仍然没有获得所有的数据。它在某个时刻切断它。我必须在我的raw_input上按回车才能接收其余的数据。无论如何,我可以一次获得所有的数据吗?这是代码。Python Socket接收大量数据
port = 7777
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind(('0.0.0.0', port))
sock.listen(1)
print ("Listening on port: "+str(port))
while 1:
conn, sock_addr = sock.accept()
print "accepted connection from", sock_addr
while 1:
command = raw_input('shell> ')
conn.send(command)
data = conn.recv(8000)
if not data: break
print data,
conn.close()
真棒感谢这么多。我很感激。 – user2585107
我不确定我是否完全理解这一点。我明白应该发生什么,但我似乎无法得到它。我越来越'例外:套接字EOF试图recv 4个字节' 我使用以下内容:http://pastebin.com/raw.php?i=AvdN5RyW – user2585107
@ user2585107:尝试更新的版本,它使用'返回None'而不是在流结束时引发异常。 –