サーバーからクライアントへのデータの受信に問題があります。私は、サーバーからデータを受信しようとする次のクライアント側の関数があります。 socket.sendall (data)
関数を使用してサーバーから送信されたデータはbuff_size
より大きいので、すべてのデータを読み取るにはループが必要です。ソケット。 socket.recv()ですべてのデータを受け取る方法?
def receiveAll (sock):
data = ""
buff_size = 4096
while True:
part = sock.recv (buff_size)
data + = part
if part <buff_size:
break;
return data
私に発生した問題は、最初の反復(最初の4096メガバイトを読む)した後、第二に、プログラムがpart = sock.recv (buff_size)
内の他のデータを待ってブロックされていることです。 recv()
は、他の欠けているデータを読み続けることができますか?ありがとうございました。
コードが二次的な動作をする可能性がありますが、これは本当に悪いことです。代わりにリストと '' '.join() 'を使用してください。 –