1

現在、ファイルを転送して動作させる必要があるサーバークライアントアプリケーションを作成しています。私はこの方法を使用しています:

クライアント:

file_to_send = raw_input(">") 

try:
    f = open("./sent_files/" + file_to_send, "rb")
except IOError, e:
    print ">error: ", e
    break

data = xmlrpclib.Binary(f.read())

if s.receive_file(file_to_send, data):
    print ">file correctly sent"

サーバ:

def receive_file(self, name, arg):                                        
    with open("./sampletest/"+name, "wb") as handle: 
        handle.write(arg.data)

しかし、どうすれば反対のことができますか (サーバーからクライアントにファイルを送信することを意味します)?

4

1 に答える 1

7

次のようにサーバーに関数を書くだけです:

def send_file(self, name):
  with open('./sampletest/' + name, 'rb') as handle:
    return handle.read()

クライアントでこれを呼び出します:

data = send_file(fileName)
with open('./received_files/' + fileName, 'wb') as handle:
  handle.write(data)
于 2013-05-28T12:20:38.017 に答える