zoukankan      html  css  js  c++  java
  • python socket粘包

    server:

    import socket,os


    server = socket.socket()
    server.bind(("localhost",9999))
    server.listen()


    while True:
    conn, addr = server.accept()
    while True:
    data= conn.recv(1024)
    print("接受成功",data)
    if not data:
    print("客户端已经断开")
    break
    print("执行指令",data)

    cmd_res =os.popen(data.decode()).read()
    print("before send ",len(cmd_res))
    if len(cmd_res)==0:
    cmd_res = "cmd has no putput"
    conn.send(str(len(cmd_res.encode())).encode("utf-8"))
    client_rec = conn.recv(1024)#去掉粘包
    conn.send(cmd_res.encode("utf-8"))
    print("send done ...")
    server.close()


    client:

    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"))
    print("发送成功")
    cmd_res_size = client.recv(1024) #接收这条命令执行结果的大小
    print("命令结果的大小",cmd_res_size)
    client.send("准备好接收了,发吧loser".encode("utf-8"))
    received_size = 0#已接收到的数据
    received_data =b''

    while received_size < int(cmd_res_size.decode()):
    data = client.recv(1024)
    received_size +=len(data)
    received_data +=data

    else:
    print("cmd res receive done...",received_size)
    print(received_data.decode())
    client.close()
     
  • 相关阅读:
    java面试常见的类
    Day6
    DAY5
    Day4
    Day3
    Day2
    Day1
    echarts3关系图:力引导布局, 固定某些节点
    Hbuilder中配置cmd
    webpack 学习
  • 原文地址:https://www.cnblogs.com/anhao-world/p/13444425.html
Copyright © 2011-2022 走看看