SOCK_STREAM套接口(流套接口)的性质

1、不保留任何消息的边界

举一个例子:本地主机通过两次独立的write(2)调用向远程主机发送数据,第一次本地进程写入25字节的数据,并通过套接口发送到远程进程,第二次再写入30字节的数据发往远程进程,总共55字节的数据,而远程进程从套接口接收数据时,将消息作为一个完整的单元来接收,或是通过若干次独立的读操作来将数据取走,即接受端并不知道这55字节的数据是分25字节和30字节两次来发送的。

2、有序性 可以保证接受的数据字节与发送是顺序完全一致(意味着通信之前必须建立一个连接)

3、无错性 可以保证接受的数据在接收端被无错的接受。如果有错误发生,在尝试完所有的错误恢复措施后仍无法消除错误,流套接口就会报告错误。所进行的错误恢复措施尝试是完全自动的,不需编程者的指导。

SOCK_DGRAM套接口

特征:

1、分组在发送后,可能无序地到达接收端

2、分组可能丢失。如果发生丢失,不会采取任何补救的措施,而且接受端也不必知道有分租丢失。

3、数据报分组有尺寸大小的限制,如果超出限制,在某些路由器和节点上就无法传送。

4、分组是在不建立连接的情况下被发送到远程进程的。

SOCK_STREAM与SOCK_DGRAM套接口类型相关推荐

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

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

  2. SOCK_STREAM和SOCK_DGRAM两种类型的区别

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

  3. Linux Socket学习--套接口的类型和协议

    我们首先来说一下PF_INET和AF_INET,虽然标准提倡在指定demain参数的时候,优先使用PF_INET,但是大量已经编写的c代码遵循旧的协议.目前情况是AF_UNIX=PF_UNIX,AF_ ...

  4. 套接口学习(一)实现

    套接口这个概念最先由4.2BSD(1983)引入.如今已经成为一个通用的网络应用程序编程接口.受到全部操作系统的支持.套接口层位于应用程序和 协议栈之间,相应用程序屏蔽了与协议相关实现的详细细节. 通 ...

  5. setsockopt设置套接口选项

    1.closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket: BOOL bReuseaddr=TRUE; setsockopt(s,SOL_SOCKET , ...

  6. socket 中 SOCK_STREAM 和 SOCK_DGRAM的区别?

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

  7. SOCK_DGRAM(数据报套接字)与SOCK_STREAM(流套接口)的区别

    一.SOCK_DGRAM (数据报套接字)特性: 1.分组在发送后,可能无序地到达接收端 2.分组可能丢失.如果发生丢失,不会采取任何补救的措施,而且接受端也不必知道有分租丢失. 3.数据报分组有尺寸 ...

  8. 网络编程学习笔记(基本套接口选项)

    SO_BROADCAST套接口选项: 此选项使能或禁止进程发送广播消息的能力.只有数据报套接口支持广播,并且还必须是在支持广播消息的网络上(例如以太网.令牌网).不能在一个点对点链路上进行广播. SO ...

  9. UNP Chapter 25 - 原始套接口

    25.1. 概述 原始套接口提供以下三种TCP及UDP套接口一般不提供的功能. 1. 使用原始套接口可以读写ICMPv4,IGMPv4,ICMPv6分组.例如:Ping程序,就使用原始套接口发送ICM ...

  10. linux的套接口和管道

    创建管道的函数: #include <unistd.h> int pipe(int pipefd[2]); pipefd[0]代表管道读出端的文件描述符,pipefd[1]代表管道写入端的 ...

最新文章

  1. 跟我学算法聚类(kmeans)
  2. RecycleView 缓存原理解析
  3. linux同时链接多个库,通过Shell脚本同时监控多个数据库负载
  4. Matlab练习:timer(定时器3)
  5. 一些DIV+CSS 命名规范
  6. 基于决策树的多分类_R中基于决策树的糖尿病分类—一个零博客
  7. bzoj4820[SDOI2017]硬币游戏
  8. 在 Linux 上配置一个 syslog 服务器
  9. java中的状态机模式_Java 有限状态机 (设计模式——状态模式)
  10. 9、Android---UI---Material Design
  11. mpvue 使用wxParse解析html
  12. 用matlab2012制作机器人,利用matlab建立简单的机器人模型的步骤
  13. 反超苹果,微软重回全球市值第一!
  14. IBM“移动优先”官网正式上线:苹果静候佳音
  15. LeetCode1456——定长子串中元音的最大数目
  16. 描写油菜花的好句好段
  17. 亚马逊运营推热新品的一些技巧分享值得卖家们收藏!
  18. MaterialDesign美化控件
  19. 深入了解区块链的漏洞之1:介绍篇
  20. 51单片机定时时间的计算

热门文章

  1. 9种 『MySQL数据库』优化的正确姿势
  2. [Keras深度学习浅尝]实战四· Embedding实现 IMDB数据集影评文本分类
  3. 论文阅读 | Region Proposal by Guided Anchoring
  4. Gentoo 教程:编译器选择
  5. 林达华推荐的数学知识
  6. 深入理解Java虚拟机读书笔记之垃圾收集器与内存分配策略
  7. Prometheus最佳实践 Summary和Histogram
  8. 服务器限制网页只能跳转过来,限制网页只能在微信打开
  9. 哥德巴赫猜想python
  10. 第六章第九题(英尺和米之间的转换)(Conversions between feet and meters)