zoukankan      html  css  js  c++  java
  • socket接收大数据

    客户端:

    import socket
    
    client=socket.socket()
    client.connect(("localhost",9999))
    
    while True:
        cmd=input(">>>").strip()
        if len(cmd)==0:continue
        client.send(cmd.encode("utf-8"))
        cmd_res_size=client.recv(1024)
        # print("")
        recevied_size=0
        recevied_data=b''
        while recevied_size<int(cmd_res_size.decode()):
            data=client.recv(1024)
            recevied_size+=len(data)
            recevied_data+=data
        else:
            print(recevied_size)
            print(recevied_data.decode())
    client.close()

    服务端

    import socket
    import os,subprocess
    
    server=socket.socket()
    server.bind(('localhost',9999))
    
    server.listen()
    
    while True:
        conn,addr=server.accept()
        print("new conn:",addr)
        while True:
            print("等待新的指令:")
            data=conn.recv(1024)
            if not data:
                print("客户端已断开")
                break
            cmd_res=os.popen(data.decode()).read()
            print("before send",len(cmd_res))
            if len(cmd_res)==0:
                cmd_res="cmd has not output..."
            conn.send(str(len(cmd_res.encode())).encode("utf-8"))
         client_ack = conn.recv(1024)#解决粘包问题
             conn.send(cmd_res.encode("utf-8")) 
    print("send done") server.close()
    server.close()


  • 相关阅读:
    价值观
    周记 改
    周记
    C语言问卷调查
    icon踩坑记录
    console.log(a)和console.log(window.a)的区别?
    记录一次微信二次分享的优化过程
    在jQuery中使用自定义属性
    10个JS技巧
    日常工作总结 2019/10/10
  • 原文地址:https://www.cnblogs.com/zhangzihong/p/7737053.html
Copyright © 2011-2022 走看看