當我嘗試接收大量數據時,它會被截斷,我必須按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'而不是在流結束時引發異常。 –