zoukankan      html  css  js  c++  java
  • socket_send_file

    client

    #!usr/bin/evn python
    # -*- coding:utf-8 -*-
    
    import socket
    import os
    sk=socket.socket()
    print(sk)
    address=('127.0.0.1',8888)
    sk.connect(address)
    BASE_DIR=os.path.dirname(os.path.abspath(__file__))
    print(BASE_DIR)
    ret=os.path.abspath(__file__)
    
    
    ipt=input('>>>').strip()
    cmd,path=ipt.split('|')
    path=os.path.join(BASE_DIR,path)
    filename=os.path.basename(path)
    file_size=os.stat(path).st_size
    file_info='%s|%s|%s'% (cmd,filename,file_size)
    sk.sendall(bytes(file_info, 'utf8'))
    has_sent = 0
    data = bytes()
    path=os.path.join(BASE_DIR,filename)
    with open(path, 'rb') as rf:
        while has_sent != file_size:
            content=rf.read(1024)
            sk.sendall(content)
            has_sent+=len(content)
    sk.close()
    View Code

    server

    #!usr/bin/evn python
    # -*- coding:utf-8 -*-
    
    import socket,os
    BASE_DIR=os.path.dirname(os.path.abspath(__file__))
    
    sk=socket.socket()
    addrs=('127.0.0.1',8888)
    sk.bind(addrs)
    sk.listen(5)
    while 1:
        conn,addr=sk.accept()
        while 1:
            data=conn.recv(1024)
            cmd,filename,file_size=str(data,'utf8').split('|')
            has_recv=0
            path=os.path.join(BASE_DIR,filename)
            with open(path,'ab') as af:
                while has_recv!=file_size:
                    data_rev=conn.recv(1024)
                    af.write(data_rev)
                    has_recv+=len(data_rev)
    sk.close()
    View Code
  • 相关阅读:
    z-index坑
    一些常用的可以封装好的方法
    echarts线状图
    vue 用js复制内容
    Java并发系列
    ThreadLocal讲解
    TreeMap源码学习
    HashMap源码学习
    Java Socket编程
    socket、tcp、udp、http 的认识及区别
  • 原文地址:https://www.cnblogs.com/ezway/p/6799241.html
Copyright © 2011-2022 走看看