8、socket & 粘包

phone = socket.socket(socket.AF_INET,socket.SOCK_STREAM)    #表示基于TCP的
phone.rev() 接收到的是bit,二进制,所以需要再发送的时候转 phone.send('hello'.encode('utf-8'))

TCP三次握手:
当server恢复syn+ack后即可进入syn_rcvd(listen)状态,测试称之为半连接。tcp 泛洪攻击就是通过模拟虚拟ip发送请求到server,而server发送ack后一直处于半连接状态。
backlog  则指定最大的半连接池


subprocess 模块
import subprocess
#Popen方法是用来执行系统命令的,直接把结果打印到终端了
res =subprocess.Popen(r'dir',shell=True,
                       #r'dsfsdfr',shell=True,
                      # stdin= #标准输入(不常用)
                       stdout=subprocess.PIPE,#stdout 标准输出
                       stderr=subprocess.PIPE) #stderr 标准错误
# 拿到的是‘gbk’编码的结果,
# 这个命令可能有正确结果,也可能有错误结果
print(res.stdout.read().decode('gbk'))
print('========')
print(res.stdout.read().decode('gbk'))  #说明只能读一次
print(res.stderr.read().decode('gbk'))  #如果是错误的就会提示

subprocess
粘包
发送端-》发送端缓冲区--》接收方缓冲区-》接收方

 

 


 

 

 

 
posted @ 2019-03-21 10:15  stromliu  阅读(77)  评论(0)    收藏  举报