【发布时间】:2016-11-26 19:52:33
【问题描述】:
我想做一个简单的文件传输程序,将文件从客户端传输到服务器。服务器将路径发送给客户端,客户端将文件发送给服务器。但我不知道如何在服务器部分创建文件。事实上,我以二进制模式发送所有文件,但之后我在服务器模式下收到每个字节,我不知道如何从收到的字节中制作文件。
客户端部分
sock = 0
path = " "
def open_socket():
global sock
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(("localhost", 9000))
def transfer_file(path):
f = open(path, "rb").read()
sock.send(f)
def main():
open_socket()
path = sock.recv(1024)
if __name__ == "__main__":
main()
服务器部分
def open_connection():
global client
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind(("0.0.0.0", 9000))
sock.listen(1)
client, address = sock.accept()
def file_transfer():
path = raw_input("Enter path of file: ")
client.send(path)
while True:
file_from_client = client.recv(1024)
def main():
open_connection()
file_transfer()
if __name__ == "__main__":
main()
谢谢!
【问题讨论】:
-
是否有任何理由不使用 http 或 sftp 或任何其他现有协议将文件发送到服务器?这是code example how to upload a local file via ssh using fabric