zoukankan      html  css  js  c++  java
  • 网络编程之黏包

    服务端:
    import socket,struct,subprocess
    server = socket.socket()
    IPPORT = ('192.168.191.1',8008)
    server.bind(IPPORT)
    server.listen(5)
    while 1:
    print('loading...')
    conn,addr = server.accept()
    print('%s已连接'%addr[0])
    while 1:
    cmd = conn.recv(1024).decode('utf8')
    print('收到了指令')
    res = subprocess.Popen(cmd,
    shell=True,
    stderr=subprocess.PIPE,
    stdout=subprocess.PIPE
    )
    out = res.stdout.read()
    err = res.stderr.read()
    print("out响应长度", len(out))
    print("err响应长度", len(err))
    if err:
    message = err
    else:
    message = out
    conn.send(struct.pack("i", len(message)))
    conn.send(message)
    客户端:
    import socket,struct,subprocess,hashlib
    client = socket.socket()
    client.connect(('192.168.191.1',8008))
    while 1:
    user_input = input("请输入指令>>>")
    client.send(user_input.encode('utf8'))
    head_data_length = struct.unpack('i',client.recv(4))[0]
    data_length = 0
    data=b""
    while data_length<head_data_length:
    recv_data = client.recv(1024)
    data +=recv_data
    data_length += len(recv_data)
    print(data.decode('gbk'))
  • 相关阅读:
    Vue基础
    ES6之promise
    第13次作业--邮箱的正则表达式
    第12次作业--你的生日
    第11次作业--字符串处理
    第10次作业
    Java找回感觉的练习
    第四次博客作业-结对项目
    第9次作业--接口及接口回调
    深入面向对象——继承
  • 原文地址:https://www.cnblogs.com/Treasuremy/p/9620196.html
Copyright © 2011-2022 走看看