Я пытаюсь создать программу на Python, которая реализует сокеты, каждый клиент отправляет файл PDF, и сервер получает его, и название изменяется на «file_number.pdf» (то есть: file_1.pdf).Проблема заключается в том, что только клиент может успешно отправить файл.Когда второй клиент пытается отправить программу, происходит сбой.Что я делаю не так и как я могу решить свой код, чтобы позволить N клиентам (с N <20) подключаться к серверу и передавать файлы? </p>
Вот код сервера:
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()
Вот код клиента:
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()
Чтобы упростить мой код, я всегда использую книгу с именем файла "libroR.pdf", но в полном коде она выбирается графическим интерфейсом пользователя.