• day30 模拟ssh远程执行命令/解决粘包执行问题/粘包终极解决方案/tcp的优化算法以及粘包问题分析


    上节课复习

    1、什么是套接字:

       套接字位于应用层与传输层之间,将传输层一下的协议都封装成了接口

       对于应用层来说只需要调用套接字的接口,写出的程序自然是遵循tcp或udp...

    2、c/s

      server必须遵循:

      1、稳定运行,对外一直提供服务

      2、服务必须绑定IP和端口

    subprocess模块

    #subprocess 模块
    import subprocess  #这个模块用来执行系统命令  subprocess子进程的意思
    import time
    obj=subprocess.Popen(
        'tasklist',
         shell=True,
         stdout=subprocess.PIPE,
         stderr=subprocess.PIPE
    )
    # print(obj)#得到一个内存地址
    # time.sleep(10)#可以看到进程  子进程结束  父进程在睡10秒
    #这一步代表生了个儿子出来
    #第一个参数必须是字符串形式的命令 第二个必须加shell=True   shell的意思是命令解释器 这一步其实在调命令解释器
    #stdout  代表命令正确运行的结果
    #stderr  代表命令错误运行的结果
    #管道其实就是进程与进程之间共享数据的地方
    #正确的命令从管道里面输给父进程,让父进程使用
    #错误的结果也往管道里面丢 这样取得时候就有针对性
    stdout_res=obj.stdout.read()#从正确管道读结果
    print(stdout_res.decode('gbk'))#bytes类型
    
    #总结
    
    #subprocess模块的应用
    

    报头是对数据加译描述的

    报头要固定长度为的是收数据的时候知道报头多长

    totalsize是报头和数据长度结合吗??

    struct模块

    该模块可以把一个类型,如数字转成固定长度的bytes类型

    import struct
    a = struct.pack('i',848544)#i表示类型
    print(a,len(a))

    什么是报头?报头是对数据有描述性的功能。

  • 相关阅读:
    notepad++插件 small
    js中面向对象 small
    #九阴真经#优选配置渲染流程简要分析[Flexi引擎]
    gkENGINE HDR流程简析
    新的开始
    以前的一些画
    gkENGINE 开发两年半总结(上)
    gkENGINE跨平台的问题总结
    win7下安装xp双系统
    Hadoop0.20.2+ Nutch1.2+Tomcat7——分布式搜索配置
  • 原文地址:https://www.cnblogs.com/wangmiaolu/p/9285498.html
Copyright © 2020-2023  润新知