上节课复习
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))
什么是报头?报头是对数据有描述性的功能。