Python Socket 接收大量数据

10 浏览
0 Comments

Python Socket 接收大量数据

当我尝试接收大量数据时,数据会被截断,我必须按下回车键才能获取剩下的数据。起初,我能够稍微增加一点,但仍然无法接收全部数据。正如您所见,我已经增加了conn.recv()的缓冲区,但仍然无法获取所有数据。它在某个特定点截断了数据。我必须在我的raw_input上按回车键才能接收剩下的数据。有没有办法可以一次性获取所有数据?以下是代码。

port = 7777
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind(('0.0.0.0', port))
sock.listen(1)
print ("监听端口:"+str(port))
while 1:
    conn, sock_addr = sock.accept()
    print "已接受来自", sock_addr, "的连接"
    while 1:
        command = raw_input('shell> ')
        conn.send(command)
        data = conn.recv(8000)
        if not data: break
        print data,
    conn.close()

0