getsockopt 返回与 setsockopt 中设置的不同的 IP_TOS 值

2024-01-03

我正在尝试使用setsockopt to set IPTOS价值IPTOS_THROUGHPUT. The setsockopt回电0。但是,那getsockopt显示了IP_TOS值设置为1,这不同于IPTOS_THROUGHPUT (0x8)。有谁知道什么可能导致不匹配IPTOS值在setsockopt and getsockopt?

这是日志输出:

在套接字 26 上设置 DSCP 标记

套接字 26 到 8 上的 setsockopt 返回 0

套接字 26 上的 DSCP 标记为 1,与预期的 8 不同

下面是代码:

int iptos = IPTOS_THROUGHPUT;

log(debug, 10, "Set DSCP Marking on socket %d\n", sockfd);

retval = setsockopt(sockfd, IPPROTO_TCP, IP_TOS,  &iptos, sizeof(iptos));
if (retval<0) {
   log(error, 99, "Failed to set DSCP marking on socket %d with error %d\n",
      sockfd, retval);
} else {
   log(debug, 10, "setsockopt on socket %d to %d returns %d\n", sockfd, iptos,
      retval);
   int tos=0;
   socklen_t toslen=sizeof(tos);

   retval = getsockopt(sockfd, IPPROTO_TCP, IP_TOS,  &tos, &toslen);
   if(retval<0) {
      log(warning, 99, "Failed to get DSCP marking on socket %d with error %d\n",
         sockfd, retval);
   }else {
      if( tos != iptos ) {
         log(warning, 99, "DSCP marking on socket %d is %d, different from expected %d\n",
            sockfd, tos, iptos);
         retval = 9999;
      }
      else {
         log(debug, 10, "Success: Set DSCP Marking on socket %d to %d\n",
            sockfd, iptos);
         retval = 0;
      }
   }
}

您应该使用 level 选项IPPROTO_IP代替IPPROTO_TCP

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

getsockopt 返回与 setsockopt 中设置的不同的 IP_TOS 值 的相关文章

  • 将数据集导出到 EXCEL

    我使用以下代码将数据库表中的字段导出到 Excel 中 我想要做的是能够编写一条 SQL 语句从多个表中检索字段并将其导出到 Excel 中 这段代码只允许我导出一张表 另外 如何显示保存提示对话框 示例代码将不胜感激 非常感谢 prote
  • 使用 getopt_long (C++) 如何为两个需要参数编写长选项和短选项?

    include
  • 如何使用movntdqa避免缓存污染?

    我正在尝试编写一个 memcpy 函数 该函数不会将源内存加载到 CPU 缓存中 目的是避免缓存污染 下面的 memcpy 函数可以工作 但会像标准 memcpy 一样污染缓存 我正在使用带有 Visual C 2008 Express 的
  • 线程安全的get(访问器方法)

    我目前正在使用以下代码对变量进行线程安全访问 int gnVariable void getVariableValue int pnValue acquireLock Acquires the protection mechanism pn
  • 如何以编程方式确定 C 中 int 数据的最大和最小限制?

    我正在尝试 K R 的练习 2 1 练习内容如下 编写一个程序来确定范围char short int and long变量 两者signed and unsigned 通过从标准标题打印适当的值并通过直接计算 如果计算它们会更困难 确定各种
  • Reflection.Emit 中的短格式操作码错误

    我正在制作一种与以下非常相似的小语言hlsl但仅支持像素着色器 该语言使用reflection emit构建实现相同功能的 NET 程序集 我目前正在测试分支指令的实现if在我的一个单元测试中 一个大的if与内if elses 失败并显示以
  • 在 C++ 中,严格别名规则中的“访问”是什么意思?

    3 10 10 说 如果一个程序试图access通过除以下类型之一之外的泛左值存储对象的值 行为未定义 然而 术语 访问 并没有在任何地方定义 在这种情况下这意味着read or 读取或修改 在 C 标准中 它被明确定义为读取或修改 然而在
  • 无法更新 .mdf 数据库,因为该数据库是只读的(Windows 应用程序)

    我使用 C 创建了一个数据库 Windows 应用程序 我的应用程序在 Windows XP 上成功运行 但在 Vista 或 Windows 7 系统上无法正确执行 我的应用程序显示类似以下内容的消息 无法更新 mdf 数据库 因为该数据
  • 从空白启动时 VSTO 功能区不显示解决方案

    如果我从 文件 新建项目 菜单创建一个新的 Excel 2013 和 2016 VSTO 加载项 项目 然后单击 项目 添加新项目 gt 功能区 可视化设计器 则一切正常 我启动了应用程序 我的功能区显示在 Excel 中 但是 如果我首先
  • 我应该使用函数还是无状态函子?

    这两段代码做同样的事情 如您所见 它将用于排序函数 哪个更好 我通常写后一种 但我看到一些程序员像以前那样做 struct val lessthan binary function
  • 发生错误。", ExceptionMessage: "提供的 'HttpContent' 实例无效

    尝试将文件添加到 http 休息调用时出现此错误 responseJson 消息 发生错误 ExceptionMessage 提供了无效的 HttpContent 实例 它确实 正在使用 多部分 参数名称 内容 异常类型 System Ar
  • 为什么 MISRA:2012 需要函数原型?

    我想知道为什么 MISRA 2012 需要函数原型 在下面的示例中 这两个原型并不是真正必要的 include
  • 如何带参数调用外部程序?

    我想在我的代码中调用一个 Windows 程序 并使用代码本身确定的参数 我不想调用外部函数或方法 而是调用 WinXP 环境中的实际 exe 或批处理 脚本文件 C 或 C 将是首选语言 但如果使用任何其他语言更容易完成此操作 请告诉我
  • 无论表单上的焦点控件如何,如何捕获 Keys.F1?

    我使用了 KeyDown 事件和一些简单的代码 例如if e KeyCode Keys F1 捕获在表单上按下 F1 但如果表单上有一些文本框 或者表单上有一些带有 Dock Fill 的电子表格 则上面的代码将毫无用处并且不执行任何操作
  • gcc 中的“假设”子句

    gcc 最新版本 4 8 4 9 是否有类似于以下的 假设 子句 assume 内置icc支持吗 例如 assume n 8 0 从 gcc 4 8 2 开始 gcc 中没有 assume 的等效项 我不知道为什么 这会非常有用 马夫索建议
  • 为什么 OOP 中静态类的最佳实践有所不同?

    我目前正在阅读有关 Java 最佳实践的内容 我发现根据这本书 https rads stackoverflow com amzn click com 0321356683我们必须优先选择静态类而不是非静态类 我记得在 C 最佳实践中 我们
  • #define, #ifdef #undef #endif

    我有以下代码 define PROC ADD void main void while 1 ifdef PROC ADD Do this code here then undefined it to run the code in the
  • 更新插入 MongoDB 时如何防止出现“_t”字段?

    我有一个应用程序 它使用 MongoDB 的 C 驱动程序将 Upsert 插入 MongoDB 数据库 当我打电话给Update函数 我无法指定我要更新的类型 然后 t字段插入元素的类型 这是我用来更新插入的代码 collection U
  • jquery ajax“发布”调用

    我是 jQuery 和 Ajax 的新手 并且在 发布 方面遇到问题 我正在使用 jQuery Ajax post 调用将数据保存到数据库 当我尝试保存数据时 它将 null 传递给我的 C 方法 jQuery 看起来像这样 functio
  • 使用 wmi 获取活动会话(Win32_LogonSession 还返回非活动/旧会话)

    有没有办法只显示 wmi 的活动会话 问题是 Win32 LogonSession 还显示不活动 断开连接的会话 ManagementScope scope new ManagementScope ManagementPath Defaul

随机推荐

  • 将时间分为小时、分钟和秒

    我必须把时间分成小时 分钟和秒 例如 如果时间是 09 11 21 我需要它为 09 小时 11 分 21 秒 我有两个文本框来输入打卡时间和休息时间 之后我想在一个新的文本框中获取结果 结果是根据打卡时间和休息时间之间的差值计算的 例如
  • 如何禁用 Express BodyParser 进行文件上传 (Node.js)

    我使用 Node js Express 构建一个 Web 应用程序 我发现 Express 公开的 connect BodyParser 在大多数情况下非常有用 但是 我希望能够更精细地访问多部分表单数据帖子 我需要将输入流通过管道传输到另
  • 使用Python计算txt文件中的行数(不包括空白行)

    我希望计算 txt 文件中的行数 如下所示 apple orange pear hippo donkey 其中有用于分隔块的空行 根据上面的示例 我正在寻找的结果是五 行 我怎样才能实现这个目标 作为奖励 如果能知道有多少块 段落就好了 因
  • 在docker-compose中连接tomcat和mysql

    我正在做一个研究项目 现在我正处于将项目转移到 docker 容器的阶段 我在我的网站上放置了 tomcat 在 mysql 上放置了数据库 do docker compose yml 不幸的是 tomcat 中的类无法连接数据库 Java
  • IE 9 忽略 CSS 规则

    我在使用 IE9 时遇到了一个奇怪的问题 它自己忽略了某些 CSS 规则 即使 IE8 也能正确加载它 IE 10 以及所有更好的浏览器 例如 FF 和 Chrome 也是如此 css 正在使用 text css MIME 加载 例如 IE
  • HotSpot 可以内联 lambda 函数调用吗?

    考虑代码 someList forEach x gt System out format element s x 理论上 应该可以内联此代码并通过首先内联来消除间接函数调用forEach方法 然后在 inlined 中内联 lambda 函
  • 文件阅读器 - 再次上传相同的文件不起作用

    我有一些类似绘图的应用程序 用户可以保存项目然后加载它们 当我第一次加载一个文件 例如project1 leds 时 在应用程序中进行一些更改但没有保存它 然后再次加载相同的文件 project1 leds 什么也没有发生 我无法多次加载同
  • 自定义排序 Python 字典

    所以我有一本打印时看起来像这样的字典 10 10 ZT21 14 WX21 12 2 15 5 3 UM 25 我想以我定义的自定义方式对它们进行排序 假设我希望它的排序方式 按键 是ZT21 10 WX21 UM 5 2 有人知道如何以预
  • 到达时间时计时器开始活动

    我希望在达到新活动时开始新活动 到目前为止我遇到了一些麻烦 这就是我到目前为止所拥有的 我希望你们明白我想做什么 如果有更简单有效的方法请告诉我 也许我应该把它放在一个线程中 Chrono Chronometer findViewById
  • 为什么我的 Eclipse 项目有虚拟调试器断点?

    我有一个小项目 当在 Eclipse 调试器中运行时 它似乎总是停在 FileInputStream class 第 106 行 文件被打开 没有设置断点 但 Eclipse 的行为就像我在这里设置了断点一样 如果我清除所有断点 它仍然会发
  • 我应该将 master 合并到功能分支中以使其更新吗?这会被视为不好的做法吗?

    我有这样的情况 master A B E F C D feature x 如果我需要将关键修复 E 和 F 合并到 feature x 分支中以继续开发并且我打算合并回 master 我是否应该将 master 合并到 feature x
  • 如何使用 ALAssetsLibrary 只获取视频

    我正在尝试通过以下代码从照片库中获取视频 但我也获取图像列表 如何获取所有视频的列表 我究竟做错了什么 NSMutableArray assetURLDictionaries NSMutableArray alloc init xy NSM
  • 打印机目的地问题

    我成功地使用 PrintWriter 将字符串写入文本文件 并且默认情况下输出文本文件被写入我正在处理的 Eclipse 项目的目录中 但我的 Eclipse 项目有一个名为 Resources 的特定文件夹 我希望将文本文件写入其中 我的
  • 如何设置 Superset 配置进行缓存

    目前 我出于工作目的正在从事 Airbnb Superset 项目 我知道 Superset 支持缓存 通过 Flask Cache 但是当我设置配置时我遇到了困难 我的 config py 文件如下所示 CACHE DEFAULT TIM
  • 在 AngularJS ngRepeat 中动画 ng-move 动画错误的项目

    当谈到在 ng repeat 中动画 ng move 时 我有点困惑 例如 如果我将数组项目从 3 移动到 7 则项目 4 7 会向上移动并且它们会产生动画 然而 我从 3 移到位置 7 的实际项目却没有 这是一个展示我的问题的 plunk
  • 线程内的消息循环

    如何使用 OTL 在线程内实现消息循环 应用程序 ProcessMessages 是我到目前为止所使用的 但使用起来不太安全 Thanks 这是我从线程队列中提取消息的方法 while GetMessage Msg 0 0 0 and no
  • Github 解决冲突总是将基础分支合并到我当前的分支

    我在 PHP Storm 的本地分支机构工作 任务完成后 我提交我的分支并推送到 git 在 Github 页面上 我创建了一个 Pull 请求 DEV 到目前为止这还可以 但如果某些文件存在冲突 根据这篇文章https docs gith
  • 加载 Keras 模型并用它进行预测

    我制作了一个用于假新闻检测的 Keras NN 模型 我得到了 89 1 的验证准确度 我使用 50 000 个样本进行训练 使用 10000 个样本进行测试 使用 2000 个样本进行验证 我已经保存了该模型 现在我想加载该模型 加载我想
  • 链表与向量

    在过去的几天里 我一直在为软件开发工作的第一次电话面试做准备 在研究我提出的问题时本文 http www codinghorror com blog 2008 01 getting the interview phone screen ri
  • getsockopt 返回与 setsockopt 中设置的不同的 IP_TOS 值

    我正在尝试使用setsockopt to set IPTOS价值IPTOS THROUGHPUT The setsockopt回电0 但是 那getsockopt显示了IP TOS值设置为1 这不同于IPTOS THROUGHPUT 0x8