美文网首页
socket 模拟 文件下载器

socket 模拟 文件下载器

作者: _PatrickStar | 来源:发表于2019-08-20 22:00 被阅读0次

服务端代码:

import socket
def send_file_2_client(conn, addr):
    # 1.读取客户端请求
    file_name = conn.recv(1024).decode('utf-8')
    print('客户端[%s]要下载的文件名:%s' % (str(addr[0]), file_name))
    file_content = None
    # 2.打开文件读取数据
    try:
        f = open(file_name, 'rb')
        file_content = f.read()
        f.close()
    except:
        print('文件不存在')
    # 3.发送文件给客户端
    if file_content:
        conn.send(file_content)
def main():
    # 1.创建套接字
    server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    # 2.绑定监听
    server.bind(('127.0.0.1', 9999))
    server.listen(128)
    print('------服务器连接成功------')
    # 3.接收数据,生成新的套接字
    while True:
        conn, addr = server.accept()
        print(addr)
        # 4.调用发送文件函数
        send_file_2_client(conn, addr)
        # 5.关闭套接字
        conn.close()
    server.close()
if __name__ == '__main__':
    main()

客户端代码

import socket
def main():
    # 1.创建套接字
    client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    # 2.获取服务器ip port 并连接
    client.connect(('127.0.0.1',9999))
    print('-------连接成功-------')
    # 3.获取下载文件的名字并发送给服务器
    file_name = input('请输入要下载的文件名:')
    client.send(file_name.encode('utf-8'))
    # 4.接收文件中的数据
    recv_data = client.recv(1024)
    # 5.保存接收到的数据并保存到文件中
    if recv_data:
        with open('new'+file_name,'wb') as f:
            f.write(recv_data)
    # 6.关闭套接字
    client.close()
if __name__ == "__main__":
    main()

同级目录下先准备好一个文件当作服务端文件,下载本地后拼接新的名字,如果要下载的文件不存在会提示报错!

相关文章

  • socket 模拟 文件下载器

    服务端代码: 客户端代码 同级目录下先准备好一个文件当作服务端文件,下载本地后拼接新的名字,如果要下载的文件不存在...

  • 小程序反编译,获取前端代码

    1,下载一个模拟器(需要自带ROOT),大部分使用的是夜神模拟器 2,在模拟器上下载微信和RE文件管理器 3,下载...

  • 2018-05-21文件下载器-客户端优化版

    import socket def main(): '''文件下载器客户端优化''' # 创建套接字 ...

  • 文件下载器-简易版

    import socket def main(): '''文件下载器-tcp客户端''' # 创建套接字 ...

  • Mac 安卓模拟器打开 ONS

    1. ONS 文件夹。 2. 下载安装夜神模拟器 for Mac。 3. 下载安装 ONS 模拟器(downloa...

  • 使用模拟器录制脚步

    下载安装夜神模拟器,将apk安装包,导入模拟器; 运行APK文件,可以安装成功,然后使用模拟器自带的录制功能,可以...

  • 最全iOS开发工具集合

    目录 Xcode [Simulators 模拟器下载](#Simulators 模拟器下载) [Developer...

  • 2.安装环境

    1.下载模拟器&安装 http://www.touchsprite.com/ 2.下载脚本文件: 地址:https...

  • Library not loaded: /usr/lib/lib

    下载所需要的文件: github下载百度网盘下载 提取码: qwhy 将下载的文件拷贝到对应的目录中 模拟器: 1...

  • uniapp运行到安卓模拟器

    下载模拟器地址,我选择的是逍遥模拟器 下载好之后安装,打开模拟器,设置为手机模式,然后重启 打开模拟器USB调试

网友评论

      本文标题:socket 模拟 文件下载器

      本文链接:https://www.haomeiwen.com/subject/zsgmsctx.html