Unix 套接字,SOCK_SEQPACKET 与 SOCK_DGRAM

2024-01-19

似乎至少有 3 种不同的本地/unix 套接字类型(AF_UNIX) , SOCK_STREAM, SOCK_DGRAM and SOCK_SEQPACKET.

虽然我知道一个SOCK_STREAM为您提供双向字节流,如 TCP 或双向管道,另外两个为您提供消息/数据包 API,unix 套接字之间有什么区别SOCK_DGRAM and SOCK_SEQPACKET ?

由于这些只是本地的,我想不出有人会实施的好理由SOCK_DGRAM以某种方式它可以重新排序数据包。

另外,是否SOCK_DGRAM/SOCK_SEQPACKET采用流量控制,或者在读取速度慢的情况下可以丢弃消息吗?


这是一篇关于预期用例的好文章SOCK_SEQPACKET,事实上它在 IP 协议族中并不真正可用,以及如何使用现有的 TCP 语义获得相同的东西:

http://urchin.earth.li/~twic/Sequenced_Packets_Over_Ordinary_TCP.html http://urchin.earth.li/~twic/Sequenced_Packets_Over_Ordinary_TCP.html

注意SOCK_SEQPACKET在行为上更接近SOCK_STREAMSOCK_DGRAM.

引用自参考网站:

SOCK_SEQPACKET套接字类型与SOCK_STREAM类型类似,也是面向连接的。这些之间的唯一区别 类型是记录边界是使用维护的 SOCK_SEQPACKET 类型。可以使用一个或多个输出发送一条记录 操作并使用一个或多个输入操作接收,但是 单个操作绝不会传输多个记录的部分内容。记录 接收者可以通过 MSG_EOR 标志看到边界 接收到由recvmsg()函数返回的消息标志。这是 协议特定是否施加最大记录大小。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unix 套接字,SOCK_SEQPACKET 与 SOCK_DGRAM 的相关文章

  • boost::multi_index_container 复合键中的 equal_range 与比较运算符

    我正在尝试从多索引容器查询结果 其中值类型是三个元素的结构 第一个值已给出 但第二个和第三个值必须大于或小于查询参数 经过搜索后 我发现必须实现自定义密钥提取器 并且这里的一些链接建议相同 但我无法实现它 boost multi index
  • 属性对象什么时候创建?

    由于属性实际上只是附加到程序集的元数据 这是否意味着属性对象仅根据请求创建 例如当您调用 GetCustomAttributes 时 或者它们是在创建对象时创建的 或者 前两个的组合 在由于 CLR 的属性扫描而创建对象时创建 从 CLR
  • 嵌入式系统中的malloc [重复]

    这个问题在这里已经有答案了 我正在使用嵌入式系统 该应用程序在 AT91SAMxxxx 和 cortex m3 lpc17xxx 上运行 我正在研究动态内存分配 因为它会极大地改变应用程序的外观 并给我更多的力量 我认为我唯一真正的路线是为
  • FFMPEG Seeking 带来音频伪影

    我正在使用 ffmpeg 实现音频解码器 在读取音频甚至搜索已经可以工作时 我无法找到一种在搜索后清除缓冲区的方法 因此当应用程序在搜索后立即开始读取音频时 我没有任何工件 avcodec flush buffers似乎对内部缓冲区没有任何
  • 跨多个控件共享事件处理程序

    在我用 C 编写的 Windows 窗体应用程序中 我有一堆按钮 当用户的鼠标悬停在按钮上时 我希望按钮的边框发生变化 目前我有以下多个实例 每个按钮一个副本 private void btnStopServer MouseEnter ob
  • 写入和读取文本文件 - C# Windows 通用平台应用程序 Windows 10

    有用 但在显示任何内容之前 您必须在文本框中输入内容 我想那是因为我使用了 TextChanged 事件处理程序 如果我希望它在没有用户交互的情况下显示文本文件的内容 我应该使用哪个事件处理程序 因此 我想在按下按钮时将一些数据写入 C W
  • A* 之间的差异 pA = 新 A;和 A* pA = 新 A();

    在 C 中 以下两个动态对象创建之间的确切区别是什么 A pA new A A pA new A 我做了一些测试 但似乎在这两种情况下 都调用了默认构造函数 并且仅调用了它 我正在寻找性能方面的任何差异 Thanks If A是 POD 类
  • 使用安全函数在 C 中将字符串添加到字符串

    我想将文件名复制到字符串并附加 cpt 但我无法使用安全函数 strcat s 来做到这一点 错误 字符串不是空终止的 我确实设置了 0 如何使用安全函数修复此问题 size strlen locatie size nieuw char m
  • 线程、进程和 Application.Exit()

    我的应用程序由主消息循环 GUI 和线程 Task Factory 组成 在线程中我调用一些第三方应用程序var p new Process 但是当我调用Application Exit 在消息循环中 我可以看到在线程中启动的进程仍在内存中
  • 初始化变量的不同方式

    在 C 中初始化变量有多种方法 int z 3 与 int 相同z 3 Is int z z 3 same as int z z 3 您可以使用 int z z 3 Or just int z 3 Or int z 3 Or int z i
  • 像“1$”这样的位置参数如何与 printf() 一起使用?

    By man I find printf d width num and printf 2 1 d width num 是等价的 但在我看来 第二种风格应该与以下相同 printf d num width 然而通过测试似乎man是对的 为什
  • 更改窗口的内容 (WPF)

    我创建了一个简单的 WPF 应用程序 它有两个 Windows 用户在第一个窗口中填写一些信息 然后单击 确定 这会将他们带到第二个窗口 这工作正常 但我试图将两个窗口合并到一个窗口中 这样只是内容发生了变化 我设法找到了这个更改窗口内容时
  • 检查 url 是否指向文件或页面

    我们需要以下内容 如果文件确实是文件 则从 URL 下载该文件 否则 如果它是一个页面 则什么也不做 举个简单的例子 我有以下命令来下载文件 My Computer Network DownloadFile http www wired c
  • 什么是 C 语言的高效工作流程? - Makefile + bash脚本

    我正在开发我的第一个项目 该项目将跨越多个 C 文件 对于我的前几个练习程序 我只是在中编写了我的代码main c并使用编译gcc main c o main 当我学习时 这对我有用 现在 我正在独自开展一个更大的项目 我想继续自己进行编译
  • EPPlus Excel 更改单元格颜色

    我正在尝试将给定单元格的颜色设置为另一个单元格的颜色 该单元格已在模板中着色 但worksheet Cells row col Style Fill BackgroundColor似乎没有get财产 是否可以做到这一点 或者我是否必须在互联
  • char指针或char变量的默认值是什么[重复]

    这个问题在这里已经有答案了 下面是我尝试打印 char 变量和指针的默认值 值的代码 但无法在控制台上看到它 它是否有默认值或只是无法读取 ASCII 范围 include
  • 如何构建印度尼西亚电话号码正则表达式

    这些是一些印度尼西亚的电话号码 08xxxxxxxxx 至少包含 11 个字符长度 08xxxxxxxxxxx 始终以 08 开头 我发现这个很有用 Regex regex new Regex 08 0 9 0 9 0 9 0 9 0 9
  • ListDictionary 类是否有通用替代方案?

    我正在查看一些示例代码 其中他们使用了ListDictionary对象来存储少量数据 大约 5 10 个对象左右 但这个数字可能会随着时间的推移而改变 我使用此类的唯一问题是 与我所做的其他所有事情不同 它不是通用的 这意味着 如果我在这里
  • 窗体最大化时自动缩放子控件

    有没有办法在最大化屏幕或更改分辨率时使 Windows 窗体上的所有内容自动缩放 我发现手动缩放它是正确的 但是当切换分辨率时我每次都必须更改它 this AutoScaleDimensions new System Drawing Siz
  • 为什么 strtok 会导致分段错误?

    为什么下面的代码给出了Seg 最后一行有问题吗 char m ReadName printf nRead String s n m Writes OK char token token strtok m 如前所述 读取字符串打印没有问题 但

随机推荐

  • Django Rest Framework 中 CreateAPIView 的权限

    我查看了 CreateAPIView 的代码 发现创建过程中没有任何地方检查权限 所以我决定检查它们perform create挂钩如下 class CourseList generics CreateAPIView Create a co
  • 浮动元素被前一个元素按下

    http jsfiddle net 4gw8wank http jsfiddle net 4gw8wank 我有 3 个容器作为响应式页面的一部分 在移动视图中 它们必须按顺序显示 蓝色 红色 绿色 像这样堆叠在一起 div class b
  • 如何删除警告:“-pie 被忽略。它仅在链接主可执行文件时使用”

    自从更新到 Xcode10 和 Swift 4 2 以来 我总是在我的 pod 中收到此构建时间警告 我需要做什么才能删除这些警告 我尝试删除派生数据 清理并构建项目 但它不起作用 我发现有人在这里问同样的问题https github co
  • 保持对管道运算符之间的变量的访问

    我一直在尝试在节点应用程序中使用 Rxjs fileList 是从返回fs readdirsync 字符串数组 首先map 有一个称为文件名的参数 flatMap readFileAsObservable uses bindNodeCall
  • Azure 数据工厂:如何在另一个管道成功完成后触发管道

    在 Azure 数据工厂中 如何在其他管道成功完成后触发管道 详细地 我试图在其他管道成功完成后触发 SSIS 包 我已经知道我可以将 SSIS 包保存为管道 并像其他管道一样使用触发器运行它 但是如何确保 SSIS 包管道仅在其他管道完成
  • 从服务器端查找 HttpRequest 中的时区

    我努力了var dateHeaders HttpContext Current Request Headers Date 但它包含 null 显然没有这样的键 谁能告诉我还能在哪里找到当前客户的时区 参考 http en wikipedia
  • 让 CSS 插入框阴影出现在内部背景之上

    我希望 CSS 插入框阴影出现在带有框阴影的容器内元素的顶部 特别是子元素的背景颜色 Demo http jsfiddle net Q8n77 http jsfiddle net Q8n77 div class parent foo div
  • C# 面板列表

    我想创建包含有关某个项目的详细信息的面板 包括左侧的缩略图 然后将它们添加到可滚动列表中 与 iPhone 上的 iTunes 显示可用应用程序列表的方式非常相似 我已经进行了一些搜索 但迄今为止尚未找到任何帮助 有谁有任何想法或样本链接想
  • Bing 拼写检查 API 是否对 mode = 拼写有额外的长度限制?

    The Bing 拼写检查 API https msdn microsoft com en us library mt711411 aspx对于请求想要进行拼写检查 mode spell 或校对 mode proof default 的文本
  • 后备机制 - 最佳方法?

    我有三种不同类型的服务器连接 这些可以在属性文件中配置 假设有三台服务器 Server1 Server2 Server3 In Properties文件 我的配置如下 ServerPref1 Server1 ServerPref2 Serv
  • 如何使用 Spark-Submit 和 pyspark 运行 luigi 任务

    我有一个luigipython 任务 其中包括一些 pyspark 库 现在我想用spark submit在mesos上提交这个任务 我应该做什么来运行它 下面是我的代码框架 from pyspark sql import function
  • UIBarStyleBlack 与 TintColor 黑色

    设置和设置有什么区别tintColor的财产UINavigationBar to UIColor blackColor 和设置barStyle to UIBarStyleBlack在不透明的导航栏上 有一些细微的差别 例如 在 iPad 上
  • C#中如何从字符串中获取数字

    我在 HTML 中有一个字符串 3 Trip 中的 1 3 如何获取数字 3 在 trip 之前 并将其转换为 int 我想将其用作计数 找到了这段代码 public static string GetNumberFromStr strin
  • Fail2ban - 为 docker-container 日志创建第二个 sshd-jail 不起作用

    我有一个运行 Ubuntu 18 04 3 的 Linux 机器 并且有一个有效的 fail2ban 配置 就像在我的所有主机上一样 在本例中 我设置了一个 docker container 它充当多个用户的 sftp 服务器 docker
  • String 或 StringBuilder 返回值?

    如果我在方法中使用 StringBuilder 对象构建字符串 那么以下操作是否有意义 返回StringBuilder对象 并让调用代码调用ToString return sb 或者通过自己调用 ToString 返回字符串 return
  • javascript 全局变量 - 保护

    我在基于 Html Javascript 构建的 Web 应用程序上使用一些全局变量 我跨页面 或其中的一部分 使用这些变量 有时它们被用作 ajax 调用的发布数据 我的问题是 这有多安全 当然 我可以为这些变量设置不同的值 例如使用控制
  • 如何从内存分配发生在C层的Python脚本将float*数组传递给C方法

    我试图从Python脚本调用C方法 C方法调用反过来C 方法 我使用 malloc 在 getResults 方法内分配数组 现在的问题是如何将参数传递给 python 脚本中的 float oresults 其内存分配发生在 C 层内 这
  • 如何使用 Spring Hibernate 配置包级别 @TypeDefs

    我需要配置 TypeDefs 以在包级别使用自定义 Type 当我按照以下方式配置它时 我收到 ClassNotFoundException 但是当我将 TypeDefs 放在类级别时 它工作正常 我发现了类似的堆栈溢出帖子 https s
  • 在recyclerview末尾添加进度条

    在我的应用程序中 我发送了一个齐射请求 该请求逐一获取列表项 而不是一次全部获取 我想在获取数据时在回收器视图的末尾实现一个进度条 updateAdapter 类更新适配器 我正在考虑使进度条在 recyclerview 滚动侦听器中可见
  • Unix 套接字,SOCK_SEQPACKET 与 SOCK_DGRAM

    似乎至少有 3 种不同的本地 unix 套接字类型 AF UNIX SOCK STREAM SOCK DGRAM and SOCK SEQPACKET 虽然我知道一个SOCK STREAM为您提供双向字节流 如 TCP 或双向管道 另外两个