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 に答える