粘包问题,以及在python中如何调用操作系统命令
一.新模块'subprocess'
复习: 在os模块中调用系统命令 import os f = os.popen('dir') print(f.read())上面的结果和下面的写法是一样的 import subprocess r = subprocess.Popen('ls',shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)# subprocess.Popen(cmd,shell=True,subprocess.stdout,subprocess.stderr) # cmd : 代表系统命令 # shell = True 代表这条命令是 系统命令,告诉操作系统,将cmd当成系统命令去执行 # stdout 是执行完系统命令之后,用于保存结果的一个管道 # stderr 是执行完系统命令之后,用于保存错误结果的一个管道 stdout = r.stdout.read().decode('gbk') stderr = r.stderr.read().decode('gbk') print('正确的返回结果:',stdout) print('错误的返回结果:',stderr) print('错误的返回结果:',stderr)
二.粘包问题 (只有tcp协议才会发送粘包,udp不会发生)
EX: 发送端发送数据,接收端不知道应该如何去接收,造成的一种数据混乱的现象
1.合包机制(nagle算法): 将多次连续发送且间隔较小的数据,进行打包成一块数据传送.
2.拆包机制: 还有一个机制是拆包机制,在发送端,因为受到网卡的MTU限制,会将大的超过MTU限制的数据,进行拆分,拆分成多个小的数据,进行传输. 当传输到目标主机的操作系统层时,会重新将多个小的数据合并成原本的数据
针对 使用udp协议发送数据,一次收发大小究竟多少合适?udp不会发生粘包,udp协议本层对一次收发数据大小的限制是:65535 - ip包头(20) - udp包头(8) = 65507站在数据链路层,因为网卡的MTU一般被限制在了1500,所以对于数据链路层来说,一次收发数据的大小被限制在 1500 - ip包头(20) - udp包头(8) = 1472得到结论:如果sendto(num)num > 65507 报错1472 < num < 65507 会在数据链路层拆包,而udp本身就是不可靠协议,所以一旦拆包之后,造成的多个小数据包在网络传输中,如果丢任何一个,那么此次数据传输失败num < 1472 是比较理想的状态
转载于:https://www.cnblogs.com/shuai1993/p/9477472.html
粘包问题,以及在python中如何调用操作系统命令相关推荐
- 使用SQL数据库在Python中执行CRUD操作
目录 介绍 背景 在Visual Studio中创建一个Python项目 在SQL中创建数据库和表 为数据库创建配置文件 安装Python包 "Pypyodbc" 创建连接文件 创 ...
- Python中的路径操作
Python中的路径操作 一.基于Python内部函数的路径操作 1.OS下的路径操作 2.从完整路径中分离文件名与路径 3.读取文件夹中特定类型的文件 二.基于第三方安装包的路径提取 1. 获取当前 ...
- python中的日志操作和发送邮件
1.python中的日志操作 安装log模块:pip install nnlog 参数:my_log = nnlog.Logger('server_log.log',level='debug',bac ...
- python中二进制文件_Python学习基础篇 -6: Python中的文件操作
前言:本专栏以Python为主题,并尽可能保持每星期两到三更,直到将Python的基础知识浅析和讲解完毕,同时,有一定基础的同学可以移步 Python实战专栏 . 文件有有什么用 文件可以看作一个仓库 ...
- Python中的字符串操作总结(Python3.6.1版本)
Python中的字符串操作(Python3.6.1版本) (1)切片操作: str1="hello world!" str1[1:3] <=> 'el'(左闭右开:即是 ...
- python中文件操作中不同的文件操作有何差异_Python学习基础篇 -6: Python中的文件操作...
前言:本专栏以Python为主题,并尽可能保持每星期两到三更,直到将Python的基础知识浅析和讲解完毕,同时,有一定基础的同学可以移步 Python实战专栏 .文件有有什么用 文件可以看作一个仓库, ...
- Python中的文件操作和异常
Python中的文件操作和异常 文章目录 Python中的文件操作和异常 一.文件 01. 文件的概念 1.1 文件的概念和作用 1.2 文件的存储方式 文本文件和二进制文件 02. 文件的基本操作 ...
- Python中的序列操作
Python中的序列操作 分类: python undefined 官方手册:https://docs.python.org/3.7/library/stdtypes.html#sequence-ty ...
- python36_第36 p,就这几个方法,Python中文件的操作
大家好,我是杨数Tos,这是<从零基础到大神>系列课程的第X篇文章,第二阶段的课程:Python基础知识:Python中文件的操作(下篇). 学习本课程,建议先看一遍:[计算机基础知识]课 ...
最新文章
- php怎样验证验证码对错,PHP生成中文验证码并检测对错实例
- TensorFlow实现基于深度学习的图像补全
- 点星 (。*)表示任意数量的字符(不包括换行符)
- clover写入efi_2014 黑苹果折腾之clover efi全新安装
- wpf 带复选框的treeview_WPF:带复选框CheckBox的树TreeView
- Java黑皮书课后题第8章:*8.3(按考分对学生排序)重写程序清单8-2,按照正确答案个数的升序显示学生
- [洛谷P4012] [网络流24题] 深海机器人问题
- C#高级编程9 第18章 部署
- Unity3d使用MeshCollider检测区域
- 服务端程序的keeplive
- jeb安装教程_JEB2插件教程之一
- 忘记数据库密码,修改数据库密码(亲测有效)
- 互联网医院远程医疗在线问诊药品商城处方流转系统源码spring boot+vue全开源
- python linux 上 RS485通信 Modbus协议
- VS隐藏菜单插件 Hide Main Menu
- selenium爬取亚马逊商品评论
- WPS取消弹出热点新闻窗口
- win10如何设置锁屏时间
- 交叉编译folly库
- 手机访问电脑文件ftp服务器,怎么用手机直接访问电脑上的视频文件图片等?