SOCK_STREAM和SOCK_DGRAM两种类型的区别
SOCK_STREAM
- 数据流
- 一般是tcp/ip协议的编程
- 有保障的(即能保证数据正确传送到对方)面向连接的SOCKET,多用于资料(如文件)传送
SOCK_DGRAM
- 数据包
- udp协议网络编程
- 是无保障的面向消息的socket , 主要用于在网络上发广播信息。
关于UDP
- UDP协议适用端口分别运行在同一台设备上的多个应用程序,UDP不提供数据报分组、组装和不能对数据包进行排序的缺点。也就是说,当报文发送之后,是无法得知其是否安全完整到达的。
- 在网络质量令人不十分满意的环境下,UDP协议数据包丢失会比较严重。
- 由于UDP的特性:它不属于连接型协议,因而具有资源消耗小,处理速度快的优点,所以通常音频、视频和普通数据在传送时使用UDP较多,因为它们即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。
关于TCP
- 面向连接的传输;
- 端到端的通信;
- 高可靠性,确保传输数据的正确性,不出现丢失或乱序;
- 全双工方式传输;
- 采用字节流方式,即以字节为单位传输字节序列;
- 紧急数据传送功能。
综上所述:如果你需要传输的数据是准确的,建议采用TCP,也就是sock_stream ;如果你传输的是视频音频等数据,丢几个包也无所谓的,可以采用UDP,也就是sock_dgram
原文参考
SOCK_STREAM和SOCK_DGRAM两种类型的区别相关推荐
- 【python】SOCK_STREAM和SOCK_DGRAM两种类型的区别【转】
sock_stream 是有保障的(即能保证数据正确传送到对方)面向连接的SOCKET,多用于资料(如文件)传送. sock_dgram 是无保障的面向消息的socket , 主要用于在网络上发广播信 ...
- FLASH中的BOOT Sectored 和 Uniform Sectored两种类型的区别和联系
关注+星标公众号,及时获取更多技术分享~ 作者 | 冰茶奥利奥 微信公众号 | 嵌入式电子创客街 前天有一个同事过来问我一个问题,就是他们一直在生产的一个板卡上的一篇镁光的芯片停产了,问我用这系列的 ...
- M.2 固态硬盘的两种类型:SATA 和 NVMe 的区别?
参考 https://www.kingston.com.cn/cn/solutions/pc-performance/two-types-m2-vs-ssd 前言 在存储技术领域,当我们讨论 M.2 ...
- 在Oracle中CHAR,NCHAR,VARCHAR,VARCHAR2,NVARCHAR2这五种类型的区别
[在Oracle中CHAR,NCHAR,VARCHAR,VARCHAR2,NVARCHAR2这五种类型的区别 ] 1.CHAR(size)和VARCHAR(size)的区别 CHAR为定长的字段,最 ...
- JavaScript中的ReferenceError和TypeError两种错误的区别
转自JavaScript中的ReferenceError和TypeError两种错误的区别 作为前端工作人员,在调试JavaScript程序的时候经常遇到两个错误:ReferenceError和Typ ...
- vue-router前端路由的两种模式的区别
一.前端路由存在的意义 前端路由主要应用在spa项目中. 核心---在无刷新(不向后端发送请求)的情况下,可以根据不同url更改视图. 二.浏览器提供hash 和history 两种模式支持(可以说, ...
- 中国移动CMnet和CMwap两种网络的区别?
中国移动CMnet和CMwap两种网络的区别? 一.目的不同 CMwap是为手机wap上网设立的; cmnet是为手体电脑,掌上电脑等移动设备上互联网设立的; 二.实现方式不同 WAP应用采用的实现方 ...
- 【JNU】网络配置大题详解(E口与G口两种类型)
[JNU]网络配置大题详解(E口与G口两种类型) E口与G口的不同之处 E口的SW1配置 G口的SW1配置 RT1配置 RT2配置 RT3配置 E口运行结果 G口运行结果 E口与G口的不同之处 如果你 ...
- 单片机开发的两种类型
** 单片机开发的两种类型 ** 最近学了一下ROS操作系统的工作原理和使用方法,想到了对于单片机来说的操作系统RTOS开发的一些概念,觉得有必要在细说一下单片机开发的两种方式. 首先,单片机开发一般 ...
最新文章
- JSP第二次作业_8小题
- LINUX下CPU Load Average的一点研究
- Linux 之三 静态库及动态库的编写和使用
- 如何打包和部署air应用程序
- 学习socket nio 之 mina实例
- springCloud(微服务的概念)1-1
- 【转】用photoshop批量修改图片尺寸
- C#获取汉字的区位码的方法
- java resourcebundle_Java ResourceBundle.getBundle如何加载属性文件?
- linux unip命令
- python中的sep函数_python sep函数是什么?怎么用?
- netcore读取json文件_.Net Core读取Json配置文件的实现示例
- 在虚拟机端搭建lamp和通过docker技术在云服务器搭建lamp环境
- Intouch与S7-200smart通讯
- 深富策略:成交量放大 短线反弹仍有望延续
- 【ant design vue】 生成表格序号
- AutoCAD2018官方中文版下载安装教程
- 【Win10 UWP】QQ SDK(一):SDK基本使用方法
- WPFのImage控件souce引入的方法总结
- C语言 | 计算 1!+2!+3!+……+10!详细讲解
热门文章
- mocha 测试 mysql_GitHub - zouzhenxing/lei: 整合Express mysql ioredis ejs 的一开发框架,使用mocha对api进行测试...
- libpng warning: iCCP: known incorrect sRGB profile
- 电脑老是弹出vrvedp_m_解答电脑启动项如何设置
- python比特币挖矿_比特币如何挖矿(挖矿原理)-工作量证明
- python实现将一个文件夹下的文件路径写入到指定的txt文件中
- django上传文件到服务器,如何用django将文件上传到服务器?
- html css考试题选择题,html_JavaScript_css试题
- 简述linux的重要安装过程,对Linux安装过程的理解
- 免费json客户端解析
- 百分百储值卡回收网站源码+手机模板