一.新模块'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中如何调用操作系统命令相关推荐

  1. 使用SQL数据库在Python中执行CRUD操作

    目录 介绍 背景 在Visual Studio中创建一个Python项目 在SQL中创建数据库和表 为数据库创建配置文件 安装Python包 "Pypyodbc" 创建连接文件 创 ...

  2. Python中的路径操作

    Python中的路径操作 一.基于Python内部函数的路径操作 1.OS下的路径操作 2.从完整路径中分离文件名与路径 3.读取文件夹中特定类型的文件 二.基于第三方安装包的路径提取 1. 获取当前 ...

  3. python中的日志操作和发送邮件

    1.python中的日志操作 安装log模块:pip install nnlog 参数:my_log = nnlog.Logger('server_log.log',level='debug',bac ...

  4. python中二进制文件_Python学习基础篇 -6: Python中的文件操作

    前言:本专栏以Python为主题,并尽可能保持每星期两到三更,直到将Python的基础知识浅析和讲解完毕,同时,有一定基础的同学可以移步 Python实战专栏 . 文件有有什么用 文件可以看作一个仓库 ...

  5. Python中的字符串操作总结(Python3.6.1版本)

    Python中的字符串操作(Python3.6.1版本) (1)切片操作: str1="hello world!" str1[1:3] <=> 'el'(左闭右开:即是 ...

  6. python中文件操作中不同的文件操作有何差异_Python学习基础篇 -6: Python中的文件操作...

    前言:本专栏以Python为主题,并尽可能保持每星期两到三更,直到将Python的基础知识浅析和讲解完毕,同时,有一定基础的同学可以移步 Python实战专栏 .文件有有什么用 文件可以看作一个仓库, ...

  7. Python中的文件操作和异常

    Python中的文件操作和异常 文章目录 Python中的文件操作和异常 一.文件 01. 文件的概念 1.1 文件的概念和作用 1.2 文件的存储方式 文本文件和二进制文件 02. 文件的基本操作 ...

  8. Python中的序列操作

    Python中的序列操作 分类: python undefined 官方手册:https://docs.python.org/3.7/library/stdtypes.html#sequence-ty ...

  9. python36_第36 p,就这几个方法,Python中文件的操作

    大家好,我是杨数Tos,这是<从零基础到大神>系列课程的第X篇文章,第二阶段的课程:Python基础知识:Python中文件的操作(下篇). 学习本课程,建议先看一遍:[计算机基础知识]课 ...

最新文章

  1. php怎样验证验证码对错,PHP生成中文验证码并检测对错实例
  2. TensorFlow实现基于深度学习的图像补全
  3. 点星 (。*)表示任意数量的字符(不包括换行符)
  4. clover写入efi_2014 黑苹果折腾之clover efi全新安装
  5. wpf 带复选框的treeview_WPF:带复选框CheckBox的树TreeView
  6. Java黑皮书课后题第8章:*8.3(按考分对学生排序)重写程序清单8-2,按照正确答案个数的升序显示学生
  7. [洛谷P4012] [网络流24题] 深海机器人问题
  8. C#高级编程9 第18章 部署
  9. Unity3d使用MeshCollider检测区域
  10. 服务端程序的keeplive
  11. jeb安装教程_JEB2插件教程之一
  12. 忘记数据库密码,修改数据库密码(亲测有效)
  13. 互联网医院远程医疗在线问诊药品商城处方流转系统源码spring boot+vue全开源
  14. python linux 上 RS485通信 Modbus协议
  15. VS隐藏菜单插件 Hide Main Menu
  16. selenium爬取亚马逊商品评论
  17. WPS取消弹出热点新闻窗口
  18. win10如何设置锁屏时间
  19. 交叉编译folly库
  20. 手机访问电脑文件ftp服务器,怎么用手机直接访问电脑上的视频文件图片等?

热门文章

  1. jsp的<a>标签中怎么传递参数
  2. SpringBoot拦截器与过滤器
  3. BIO-NIO-AIO
  4. Uedit32和Ubuntu 选定跳转
  5. 2017-9-17pat甲级 A
  6. 【译】LXC and LXD: Explaining Linux Containers
  7. Android Treble 计划技术文档
  8. Android6.0 keyguard锁屏加载流程分析
  9. android 6.0 logcat机制(二)logcat从logd中获取log保存到文件中
  10. OPTEETrusted Application结构分析