传输层: 端口号算法
Tcp协议:面向链接,数据可靠,传输效率低,面向字节流shell
Udp协议:面向无链接,数据不可靠,传输效率高,面向报文网络
Tcp和udp协议下的socketsocket
Tcp长链接的一些问题优化
缓冲区: 将程序和网络解耦spa
输入缓冲区效率
输出缓冲区打包
Import Subprocessudp
sub_obj = subprocess.Popen(程序
‘dir’,
shell=True,
stdout=subprocess.PIPE, #正确结果的存放位置
stderr=subprocess.PIPE #错误结果的存放位置
)
两种黏包现象:
1 连续的小包可能会被优化算法给组合到一块儿进行发送
2 第一次若是发送的数据大小2000B接收端一次性接受大小为1024,这就致使剩下的内容会被下一次recv接收到,致使结果错乱
方案一:因为双方不知道对方发送数据的长度,致使接收的时候,可能接收不全,或者多接收另一次发送的信息内容,因此在发送真实数据以前,要先发送数据的长度,接收端根据长度来接收后面的真实数据,可是双方有一个交互确认的过程
方案二:
Struct模块,
打包:struct.pack(‘i’,长度)
解包:struct.unpack(‘i’,字节)
打印进度条