zoukankan      html  css  js  c++  java
  • 上传下载

    # 默写 TCP UDP 文件夹中的代码
    # 完成一个上传和下载文件的小程序
    # server端 :根据客户端需求自定义
    # client端
    # 客户端启动之后
    # 选择 上传操作 还是 下载操作
    # 如果是上传操作 : 输入要上传的文件路径
    # 基础需求 :直接将文件上传到默认目录
    # 进阶需求 :将文件上传到指定目录
    # 如果是下载文件 : 输入要下载的文件路径
    # 基础需求 : 直接将文件下载到当前目录
    # 进阶需求 :将文件下载到指定目录
    # 字符串
    # 文件 - 读文件 转码 写文件
    # 默写 TCP UDP 文件夹中的代码
    # 完成一个上传和下载文件的小程序
    # server端 :根据客户端需求自定义
    # client端
    # 客户端启动之后
    # 选择 上传操作 还是 下载操作
    # 如果是上传操作 : 输入要上传的文件路径
    # 基础需求 :直接将文件上传到默认目录
    # 进阶需求 :将文件上传到指定目录
    # 如果是下载文件 : 输入要下载的文件路径
    # 基础需求 : 直接将文件下载到当前目录
    # 进阶需求 :将文件下载到指定目录
    # 字符串
    # 文件 - 读文件 转码 写文件
    # 默写 TCP UDP 文件夹中的代码
    # 完成一个上传和下载文件的小程序
    # server端 :根据客户端需求自定义
    # client端
    # 客户端启动之后
    # 选择 上传操作 还是 下载操作
    # 如果是上传操作 : 输入要上传的文件路径
    # 基础需求 :直接将文件上传到默认目录
    # 进阶需求 :将文件上传到指定目录
    # 如果是下载文件 : 输入要下载的文件路径
    # 基础需求 : 直接将文件下载到当前目录
    # 进阶需求 :将文件下载到指定目录
    # 字符串
    # 文件 - 读文件 转码 写文件
    # 默写 TCP UDP 文件夹中的代码
    # 完成一个上传和下载文件的小程序
    # server端 :根据客户端需求自定义
    # client端
    # 客户端启动之后
    # 选择 上传操作 还是 下载操作
    # 如果是上传操作 : 输入要上传的文件路径
    # 基础需求 :直接将文件上传到默认目录
    # 进阶需求 :将文件上传到指定目录
    # 如果是下载文件 : 输入要下载的文件路径
    # 基础需求 : 直接将文件下载到当前目录
    # 进阶需求 :将文件下载到指定目录
    # 字符串
    # 文件 - 读文件 转码 写文件

    server端
    import json
    import socket

    sk = socket.socket()
    sk.bind(('127.0.0.1',8080))
    sk.listen()

    conn,addr = sk.accept()
    content = conn.recv(1024).decode('utf-8')
    content_dic = json.loads(content)
    if content_dic['operate'] == 'upload':
    conn.send(b'received!')
    with open(content_dic['filename'],'wb') as f:
    while content_dic['filesize']:
    file = conn.recv(1024)
    f.write(file)
    content_dic['filesize'] -= len(file)
    conn.close()
    sk.close()


    client端
    import os
    import json
    import socket

    sk = socket.socket()
    sk.connect(('127.0.0.1',8080))

    def get_filename(file_path):
    filename = os.path.basename(file_path)
    return filename

    #选择 操作
    operate = ['upload','download']
    for num,opt in enumerate(operate,1):
    print(num,opt)
    num = int(input('请输入您要做的操作序号 : '))
    if num == 1:
    '''上传操作'''
    #file_path = 'E:python10day33作业.py'
    file_path = input('请输入要上传的文件路径 : ')
    # 告诉对方要上传的文件的名字
    file_name = get_filename(file_path)
    # 读要上传的文件 存成字符串
    with open(file_path,encoding='utf-8') as f:
    content = f.read()
    dic = {'operate':'upload','filename':file_name,'content':content}
    # 将字符串send给server端
    str_dic = json.dumps(dic)
    sk.send(str_dic.encode('utf-8'))
    # server端接收 bytes转码程字符串
    # server端打开文件 写文件
    elif num == 2:
    '''下载操作'''
    sk.close()

    
    
  • 相关阅读:
    Java RunTime Environment (JRE) or Java Development Kit (JDK) must be available in order to run Eclipse. ......
    UVA 1597 Searching the Web
    UVA 1596 Bug Hunt
    UVA 230 Borrowers
    UVA 221 Urban Elevations
    UVA 814 The Letter Carrier's Rounds
    UVA 207 PGA Tour Prize Money
    UVA 1592 Database
    UVA 540 Team Queue
    UVA 12096 The SetStack Computer
  • 原文地址:https://www.cnblogs.com/mys6/p/10799965.html
Copyright © 2011-2022 走看看