• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    python实现TCP文件接收发送

    本文实例为大家分享了python实现TCP文件接收发送的具体代码,供大家参考,具体内容如下

    下一篇分享:udp收发的实现

    先运行服务器端打开接收,在运行客服端发送文件

    还有记得改一下ip哟

    1、发送

    根据自己需求修改,简单局域网下完成文件收发

    客户端

    # 由客户端向服务器传数据,文件
    
    import socket
    import tqdm
    import os
    
    
    def send(filename):
        # 传输数据间隔符
        SEPARATOR = 'SEPARATOR>'
        # 服务器信息
        host = '127.0.0.1'
        port =1234
        # 文件缓冲区
        Buffersize = 4096*10
        # 传输文件名字
        filename = filename
        # 文件大小
        file_size  = os.path.getsize(filename)
        # 创建socket链接
        s = socket.socket()
        print(f'服务器连接中{host}:{port}')
        s.connect((host, port))
        print('与服务器连接成功')
    
        # 发送文件名字和文件大小,必须进行编码处理
        s.send(f'{filename}{SEPARATOR}{file_size}'.encode())
    
        # 文件传输
        progress = tqdm.tqdm(range(file_size), f'发送{filename}', unit='B', unit_divisor=1024)
    
        with open(filename,'rb') as f :
            # 读取文件
            for _ in progress:
                bytes_read = f.read(Buffersize)
                if not bytes_read:
                    break
                # sendall 确保网络忙碌的时候,数据仍然可以传输
                s.sendall(bytes_read)
                progress.update(len(bytes_read))
        # 关闭资源
        s.close()
    
    if __name__ == '__main__':
        filename = input('请输入文件名:')
        send(filename)

    2、接收

    服务器端

    import socket
    import tqdm
    import os
    import threading
    
    def received():
        # 设置服务器的ip和 port
        # 服务器信息
        sever_host = '127.0.0.1'
        sever_port =1234
        # 传输数据间隔符
        SEPARATOR = 'SEPARATOR>'
    
        # 文件缓冲区
        Buffersize = 4096*10
        s = socket.socket()
        s.bind((sever_host, sever_port))
    
        # 设置监听数
        s.listen(128)
        print(f'服务器监听{sever_host}:{sever_port}')
    
        # 接收客户端连接
        client_socket, address = s.accept()
        # 打印客户端ip
        print(f'客户端{address}连接')
    
        # 接收客户端信息
        received = client_socket.recv(Buffersize).decode()
        filename ,file_size = received.split(SEPARATOR)
        # 获取文件的名字,大小
        filename = os.path.basename(filename)
        file_size = int(file_size)
    
        # 文件接收处理
        progress = tqdm.tqdm(range(file_size), f'接收{filename}', unit='B', unit_divisor=1024, unit_scale=True)
    
    
        with open('8_18_'+filename,'wb') as f:
            for _ in progress:
    
                # 从客户端读取数据
                bytes_read = client_socket.recv(Buffersize)
                # 如果没有数据传输内容
                if not bytes_read:
                    break
                # 读取写入
                f.write(bytes_read)
                # 更新进度条
                progress.update(len(bytes_read))
    
        # 关闭资源
        client_socket.close()
        s.close()
    
    if __name__ == '__main__':
        received()

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
    • python后端接收前端回传的文件方法
    • python实现文件+参数发送request的实例代码
    • python实现定时压缩指定文件夹发送邮件
    • Python实现监控Nginx配置文件的不同并发送邮件报警功能示例
    • python 通过 socket 发送文件的实例代码
    • python实现requests发送/上传多个文件的示例
    • python调用Moxa PCOMM Lite通过串口Ymodem协议实现发送文件
    上一篇:生成Jupyter Lab快捷方式的小技巧
    下一篇:五分钟学会Python 模块和包、文件
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    python实现TCP文件接收发送 python,实现,TCP,文件,接收,