zoukankan      html  css  js  c++  java
  • 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'))
    
  • 相关阅读:
    无阻塞网络
    带宽、线速、吞吐量
    one-to-all及all-to-all网络通信模式
    CLOS网络架构与FATTREE胖树拓扑
    CLOS网络
    IP分片与重组详解
    原 TCP层的分段和IP层的分片之间的关系 & MTU和MSS之间的关系
    多个方面比较电路交换、报文交换和分组交换的主要优缺点
    地址族与数据序列 (转)
    简单网络搭建与测试 mininet
  • 原文地址:https://www.cnblogs.com/Mrszhao/p/9599268.html
Copyright © 2011-2022 走看看