私はソケットを実装するPythonでプログラムを作成しようとしています。各クライアントはPDFファイルを送信し、サーバはそれを受け取り、タイトルは "file_number.pdf"に変更されます。 .pdf)。提示される問題は、クライアントだけがファイルを正常に送信できることです。 2番目のクライアントがプログラムを送信しようとするとクラッシュします。何が間違っているのですか?Nクライアント(N < 20)がサーバーに接続してファイルを転送できるようにするためにコードを解決するにはどうすればよいですか?ここでPythonでソケットを通してファイルを送信する
は、サーバーのコードは次のとおりです。私は常にファイル名「libroR.pdf」で書籍を使用する私のコードを簡素化するために
import socket
import sys
s = socket.socket()
s.connect(("localhost",9999))
f = open ("libroR.pdf", "rb")
l = f.read(1024)
while (l):
s.send(l)
l = f.read(1024)
s.close()
が、完全に:
import socket
import sys
s = socket.socket()
s.bind(("localhost",9999))
s.listen(10) # Acepta hasta 10 conexiones entrantes.
sc, address = s.accept()
print address
i=1
f = open('file_'+ str(i)+".pdf",'wb') # Open in binary
i=i+1
while (True):
# Recibimos y escribimos en el fichero
l = sc.recv(1024)
while (l):
f.write(l)
l = sc.recv(1024)
f.close()
sc.close()
s.close()
は、ここでクライアントコードですコードはグラフィカルユーザーインターフェイスによって選択されます。
は私たちにエラーを表示し、それがクライアントまたは影響を受けているサーバーであるかどうかを教えて。 – Marcin
@Marcinはエラーを教えてくれません。最初のクライアントだけがファイルを送信し、正常終了し、2番目のクライアントが接続しようとすると、サーバーはさらに多くの要求を待っています。 – franvergara66