SOCK_STREAM

  1. 数据流
  2. 一般是tcp/ip协议的编程
  3. 有保障的(即能保证数据正确传送到对方)面向连接的SOCKET,多用于资料(如文件)传送

SOCK_DGRAM

  1. 数据包
  2. udp协议网络编程
  3. 是无保障的面向消息的socket , 主要用于在网络上发广播信息。

关于UDP

  1. UDP协议适用端口分别运行在同一台设备上的多个应用程序,UDP不提供数据报分组、组装和不能对数据包进行排序的缺点。也就是说,当报文发送之后,是无法得知其是否安全完整到达的。
  2. 在网络质量令人不十分满意的环境下,UDP协议数据包丢失会比较严重。
  3. 由于UDP的特性:它不属于连接型协议,因而具有资源消耗小,处理速度快的优点,所以通常音频视频普通数据在传送时使用UDP较多,因为它们即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。

关于TCP

  1. 面向连接的传输;
  2. 端到端的通信;
  3. 高可靠性,确保传输数据的正确性,不出现丢失或乱序;
  4. 全双工方式传输;
  5. 采用字节流方式,即以字节为单位传输字节序列;
  6. 紧急数据传送功能。

综上所述:如果你需要传输的数据是准确的,建议采用TCP,也就是sock_stream ;如果你传输的是视频音频等数据,丢几个包也无所谓的,可以采用UDP,也就是sock_dgram

原文参考

SOCK_STREAM和SOCK_DGRAM两种类型的区别相关推荐

  1. 【python】SOCK_STREAM和SOCK_DGRAM两种类型的区别【转】

    sock_stream 是有保障的(即能保证数据正确传送到对方)面向连接的SOCKET,多用于资料(如文件)传送. sock_dgram 是无保障的面向消息的socket , 主要用于在网络上发广播信 ...

  2. FLASH中的BOOT Sectored 和 Uniform Sectored两种类型的区别和联系

    关注+星标公众号,及时获取更多技术分享~  作者 | 冰茶奥利奥 微信公众号 | 嵌入式电子创客街 前天有一个同事过来问我一个问题,就是他们一直在生产的一个板卡上的一篇镁光的芯片停产了,问我用这系列的 ...

  3. M.2 固态硬盘的两种类型:SATA 和 NVMe 的区别?

    参考 https://www.kingston.com.cn/cn/solutions/pc-performance/two-types-m2-vs-ssd 前言 在存储技术领域,当我们讨论 M.2 ...

  4. 在Oracle中CHAR,NCHAR,VARCHAR,VARCHAR2,NVARCHAR2这五种类型的区别

    [在Oracle中CHAR,NCHAR,VARCHAR,VARCHAR2,NVARCHAR2这五种类型的区别 ] 1.CHAR(size)和VARCHAR(size)的区别  CHAR为定长的字段,最 ...

  5. JavaScript中的ReferenceError和TypeError两种错误的区别

    转自JavaScript中的ReferenceError和TypeError两种错误的区别 作为前端工作人员,在调试JavaScript程序的时候经常遇到两个错误:ReferenceError和Typ ...

  6. vue-router前端路由的两种模式的区别

    一.前端路由存在的意义 前端路由主要应用在spa项目中. 核心---在无刷新(不向后端发送请求)的情况下,可以根据不同url更改视图. 二.浏览器提供hash 和history 两种模式支持(可以说, ...

  7. 中国移动CMnet和CMwap两种网络的区别?

    中国移动CMnet和CMwap两种网络的区别? 一.目的不同 CMwap是为手机wap上网设立的; cmnet是为手体电脑,掌上电脑等移动设备上互联网设立的; 二.实现方式不同 WAP应用采用的实现方 ...

  8. 【JNU】网络配置大题详解(E口与G口两种类型)

    [JNU]网络配置大题详解(E口与G口两种类型) E口与G口的不同之处 E口的SW1配置 G口的SW1配置 RT1配置 RT2配置 RT3配置 E口运行结果 G口运行结果 E口与G口的不同之处 如果你 ...

  9. 单片机开发的两种类型

    ** 单片机开发的两种类型 ** 最近学了一下ROS操作系统的工作原理和使用方法,想到了对于单片机来说的操作系统RTOS开发的一些概念,觉得有必要在细说一下单片机开发的两种方式. 首先,单片机开发一般 ...

最新文章

  1. JSP第二次作业_8小题
  2. LINUX下CPU Load Average的一点研究
  3. Linux 之三 静态库及动态库的编写和使用
  4. 如何打包和部署air应用程序
  5. 学习socket nio 之 mina实例
  6. springCloud(微服务的概念)1-1
  7. 【转】用photoshop批量修改图片尺寸
  8. C#获取汉字的区位码的方法
  9. java resourcebundle_Java ResourceBundle.getBundle如何加载属性文件?
  10. linux unip命令
  11. python中的sep函数_python sep函数是什么?怎么用?
  12. netcore读取json文件_.Net Core读取Json配置文件的实现示例
  13. 在虚拟机端搭建lamp和通过docker技术在云服务器搭建lamp环境
  14. Intouch与S7-200smart通讯
  15. 深富策略:成交量放大 短线反弹仍有望延续
  16. 【ant design vue】 生成表格序号
  17. AutoCAD2018官方中文版下载安装教程
  18. 【Win10 UWP】QQ SDK(一):SDK基本使用方法
  19. WPFのImage控件souce引入的方法总结
  20. C语言 | 计算 1!+2!+3!+……+10!详细讲解

热门文章

  1. mocha 测试 mysql_GitHub - zouzhenxing/lei: 整合Express mysql ioredis ejs 的一开发框架,使用mocha对api进行测试...
  2. libpng warning: iCCP: known incorrect sRGB profile
  3. 电脑老是弹出vrvedp_m_解答电脑启动项如何设置
  4. python比特币挖矿_比特币如何挖矿(挖矿原理)-工作量证明
  5. python实现将一个文件夹下的文件路径写入到指定的txt文件中
  6. django上传文件到服务器,如何用django将文件上传到服务器?
  7. html css考试题选择题,html_JavaScript_css试题
  8. 简述linux的重要安装过程,对Linux安装过程的理解
  9. 免费json客户端解析
  10. 百分百储值卡回收网站源码+手机模板