我想在Python中制作一个实现套接字的程序,每个客户端发送一个PDF文件并且服务器接收它并将标题改为“file_number.pdf”(即:file_1 .PDF)。提出的问题是,只有客户端才能成功发送文件。当第二个客户端尝试发送程序确实崩溃。我在做什么错了,如何解决我的代码,让N个客户端(连接N < 20)连接到服务器并传输文件?通过Python中的套接字发送文件
这里的服务器代码:
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”,但在全代码是由图形用户界面选择的。
显示我们的错误,并告诉我们,无论是客户端或受影响的服务器。 – Marcin 2012-02-21 17:21:54
@Marcin不会教我任何错误,只是第一个客户端发送文件并成功结束,并且服务器继续等待更多请求,当第二个客户端尝试连接时,客户端程序无需任何操作并保持待机状态。 – franvergara66 2012-02-21 17:25:26