0

我正在研究基于 Python 套接字的文件传输脚本。服务器可以有 10 个客户端连接到它,都向它发送文件。问题是,它只发送一个名为“libroR.pdf”的文件,如果可能的话,我希望用户能够指定要发送到服务器的自定义文件的名称和位置。如果可能的话,我还希望能够为客户端指定一个自定义主机名来连接。

服务器:

import socket
import sys

s = socket.socket()
s.bind(("localhost",9999))
s.listen(10) # Acepta hasta 10 conexiones entrantes.

while True:
    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()

谢谢,肖恩。:)

4

1 回答 1

0

尝试这个:

import socket
import sys
s = socket.socket()
s.connect((raw_input("Enter a host name"),9999))
f = open(raw_input("Enter the file to send to the server: "), "rb") # On this line, you were getting a file allways named libroR.pdf, but the user can input the file now
l = f.read(1024)
while (l):
    s.send(l)
    l = f.read(1024)
s.close()
于 2012-10-11T22:32:43.810 回答