• py 的 第28 天


    ssh

     import   subprocess

     import socket,subprocess
    server = socket.socket()
    
     server.connect(('127.0.0,1',8008))
    
     a=server.recv(1024)
     res=subprocess.Popen("dir",
                          shell=True,
                          stderr=subprocess.PIPE,
                          stdout=subprocess.PIPE)
    
    print(res.stdout.read().decode("gbk"))
    

     这个还不是很懂,老师也没有怎么说,关于true   err是关于错误,这两个后面赋的值都是一样的,只是打印出的可能不同

    粘包的问题   发东西的时候不确定发的字节有多长,接收的时候最好一次1024 一次一kb 就够了,太多了容易内存爆炸,我们先写一个头,确定一下他是多长的数字,然后比对持续接收

    import  struct
        c='aaaa'.encode('utf8')          #这是把你要传送的文件转换成utf8的字节
        a=struct.pack('i',len(c))         #这个是struct模块中的i方法 把一个文件的字节数,转化成一个4位字节的,转完在接收的那边再转换回来
        变量.send(a)                         #先发一下这个头4个字,对面第一次只接收4个字节就ok
        变量.send(c)                         #再发送一下文件的字节格式





    import  struct
        touch=conn.recv(4)  #先接收前四个
        toushu1=struct.unpack('i',toushu)[0]  #这个转4位数,回来的是个元组,我们要取第一位
        
        r=0
        c=b‘’       #接到的文件是字节,还没有转码,定义一个空字节,一点一点加到这里面,然后一起转码
    
    while r < toushu1  #如果这个0,小于字节数,就往下走
        neirong=conn,recv(1024) #如果小就接收1024过来 ⚠️接来的是字节
        r+=len(neurona)     #每次都把这个0往上加,直到0等于字节长度
        c+=neirong            #每次都在空字节里加入 字节在一起转码
            下面再操作的时候,操作这个c就行了  把c utf8转码(c.decode('utf8'))
    
  • 相关阅读:
    java中math类
    java中的值传递和引用传递(转)
    eclipse 字体和配色修改
    JAR WAR EAR包的区别
    java中基本类型
    tomcat 7.0 配置详解
    或许你需要一些可操作性更强的实践
    Assembly.CreateInstance()与Activator.CreateInstanc
    OOD沉思录2 类和对象的关系包含关系
    C#的插件开发
  • 原文地址:https://www.cnblogs.com/Mrszhao/p/9599268.html
Copyright © 2020-2023  润新知