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'))
  • 相关阅读:
    程序员修炼之道:从小工到专家--读书摘录
    代码规范--捡拾(SQL语句)
    新博客,新生活
    如何用Eclipse+maven创建servlet 3.0 web 项目
    swift -- 枚举
    swift -- 函数
    控制语句 for while if switch
    swift -- 字符串
    swift -- 集合
    swift -- 字典
  • 原文地址:https://www.cnblogs.com/Treasuremy/p/9620196.html
Copyright © 2011-2022 走看看