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
  • 相关阅读:
    面向对象中一些容易混淆的概念
    day12作业
    day10作业
    day09作业
    Where与Having的区别
    排序算法之快速排序
    排序算法之冒泡排序
    jQuery中的100个技巧
    用node.js给图片加水印
    代码高亮美化插件-----SyntaxHighlighter
  • 原文地址:https://www.cnblogs.com/ezway/p/6799241.html
Copyright © 2011-2022 走看看