利用socket实现文件传送,大约分为如下几步:

1.读取文件名
2.检测文件是否存在
3.打开文件(别忘了最后关闭文件)
4.检测文件大小
5.发送文件大小给客户端
6.等客户端确认
7.开始边读边发数据
8.md5验证

实例1:实现步骤1-7

运行代码

#Author:Zheng Na

#ftp服务端
import socket
import os

server = socket.socket()

server.bind(('localhost',6969))

server.listen()

while True:
    print("等待新客户端连接")
    conn,addr = server.accept()
    print("new conn: ",addr)

    while True:
        print("等待新指令")
        data = conn.recv(1024)
        if not data:
            print("客户端已断开")
            break
        cmd,filename = data.decode().split() # 1.读取文件名
        print("文件名:",filename)
        if os.path.isfile(filename): # 2.判断文件是否存在
            f = open(filename,'rb') # 3.打开文件
            file_size = os.stat(filename).st_size # 4.检测文件大小
            conn.send(str(file_size).encode()) # 5.发送文件大小给客户端
            print("等待客户ack应答...")
            client_final_ack = conn.recv(1024)  # 6.等待客户端确认
            print("客户应答:", client_final_ack.decode("UTF-8"))
            for line in f: # 7.开始边读边发数据
                conn.send(line)
            f.close() # 关闭文件
            print("send done")

server.close()
ftp_socket_server1_simple.py

相关文章:

  • 2021-09-23
  • 2021-11-27
  • 2022-12-23
  • 2021-10-11
  • 2021-06-19
  • 2021-08-30
猜你喜欢
  • 2021-12-23
  • 2022-01-30
  • 2021-12-24
  • 2021-06-26
  • 2022-12-23
  • 2022-02-22
  • 2022-02-18
相关资源
相似解决方案