XP 和 Vista 之间使用 Winsock API 的 UDP 多播差异

2024-05-02

Windows XP 和 Windows Vista 之间设置 UDP 多播套接字所需的实现似乎有所不同。具体来说:

  • 在 Windows XP 下,您must call bind()在您可以引用任何特定于多播的套接字选项之前。

  • 然而,在windows vista下,你must not call bind()处理多播套接字时。

这两点中的任何一个失败都会导致运行时出现套接字错误。

我是疯了还是其他人也看到了这个?有没有比bind()调用的条件编译更好的解决方案?


你从什么错误中得到setsockopt()您拨打的申请电话IP_ADD_MEMBERSHIP并加入多播组?

我刚刚用我的服务器框架在这里运行了一些测试,我注意到我确实调用了bind()在 Windows 7 上(我手头没有 Vista 机器),只要绑定地址和多播地址都有效,我也可以按预期加入多播组。

但是我不能用INADDR_ANY,因为这会导致加入多播组失败并出现错误 10022 (WSAEINVAL)并且如果多播组地址不是有效的多播地址,则调用将失败并出现错误 10049(WSAEADDRNOTAVAIL)。这一切看起来都很公平。

我现在正在启动 XP 盒子...

[在 XP 上测试后编辑]

在 XP 上这是合法的bind() to INADDR_ANY使用无效的多播地址是合法的。所以,我预计,您正在执行其中一项操作,因此它适用于 XP,而不适用于 Vista/Win7。

那么,您遇到了什么错误以及您绑定到什么地址?

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

XP 和 Vista 之间使用 Winsock API 的 UDP 多播差异 的相关文章

  • ASP.NET Core Serilog 未将属性推送到其自定义列

    我有这个设置appsettings json对于我的 Serilog 安装 Serilog MinimumLevel Information Enrich LogUserName Override Microsoft Critical Wr
  • 如何使用GDB修改内存内容?

    我知道我们可以使用几个命令来访问和读取内存 例如 print p x 但是如何更改任何特定位置的内存内容 在 GDB 中调试时 最简单的是设置程序变量 参见GDB 分配 http sourceware org gdb current onl
  • linux perf:如何解释和查找热点

    我尝试了linux perf https perf wiki kernel org index php Main Page今天很实用 但在解释其结果时遇到了困难 我习惯了 valgrind 的 callgrind 这当然是与基于采样的 pe
  • 指针问题(仅在发布版本中)

    不确定如何描述这一点 但我在这里 由于某种原因 当尝试创建我的游戏的发布版本进行测试时 它的敌人创建方面不起作用 Enemies e level1 3 e level1 0 Enemies sdlLib 500 2 3 128 250 32
  • 指针减法混乱

    当我们从另一个指针中减去一个指针时 差值不等于它们相距多少字节 而是等于它们相距多少个整数 如果指向整数 为什么这样 这个想法是你指向内存块 06 07 08 09 10 11 mem 18 24 17 53 7 14 data 如果你有i
  • 使用 System.Text.Json 即时格式化 JSON 流

    我有一个未缩进的 Json 字符串 例如 hash 123 id 456 我想缩进字符串并将其序列化为 JSON 文件 天真地 我可以使用缩进字符串Newtonsoft如下 using Newtonsoft Json Linq JToken
  • C# 中的递归自定义配置

    我正在尝试创建一个遵循以下递归结构的自定义配置部分
  • 从库中捕获主线程 SynchronizationContext 或 Dispatcher

    我有一个 C 库 希望能够将工作发送 发布到 主 ui 线程 如果存在 该库可供以下人员使用 一个winforms应用程序 本机应用程序 带 UI 控制台应用程序 没有 UI 在库中 我想在初始化期间捕获一些东西 Synchronizati
  • 当操作繁忙时,表单不执行任何操作(冻结)

    我有一个使用 C 的 WinForms 应用程序 我尝试从文件中读取一些数据并将其插入数据表中 当此操作很忙时 我的表单冻结并且无法移动它 有谁知道我该如何解决这个问题 这可能是因为您在 UI 线程上执行了操作 将文件和数据库操作移至另一个
  • 将 unsigned char * (uint8_t *) 转换为 const char *

    我有一个带有 uint8 t 参数的函数 uint8 t ihex decode uint8 t in size t len uint8 t out uint8 t i hn ln for i 0 i lt len i 2 hn in i
  • C++ fmt 库,仅使用格式说明符格式化单个参数

    使用 C fmt 库 并给定一个裸格式说明符 有没有办法使用它来格式化单个参数 example std string str magic format 2f 1 23 current method template
  • 需要哪个版本的 Visual C++ 运行时库?

    microsoft 的最新 vcredist 2010 版 是否包含以前的版本 2008 SP1 和 2005 SP1 还是我需要安装全部 3 个版本 谢谢 你需要所有这些
  • 将文本叠加在图像背景上并转换为 PDF

    使用 NET 我想以编程方式创建一个 PDF 它仅包含一个背景图像 其上有两个具有不同字体和位置的标签 我已阅读过有关现有 PDF 库的信息 但不知道 如果适用 哪一个对于如此简单的任务来说最简单 有人愿意指导我吗 P D 我不想使用生成的
  • 在 Dynamics CRM 插件中访问电子邮件发件人地址

    我正在编写一个 Dynamics CRM 2011 插件 该插件挂钩到电子邮件实体的更新后事件 阶段 40 pipeline http msdn microsoft com en us library gg327941 aspx 并且在此阶
  • 32 位到 64 位内联汇编移植

    我有一段 C 代码 在 GNU Linux 环境下用 g 编译 它加载一个函数指针 它如何执行并不重要 使用一些内联汇编将一些参数推送到堆栈上 然后调用该函数 代码如下 unsigned long stack 1 23 33 43 save
  • 为什么 C# Math.Ceiling 向下舍入?

    我今天过得很艰难 但有些事情不太对劲 在我的 C 代码中 我有这样的内容 Math Ceiling decimal this TotalRecordCount this PageSize Where int TotalRecordCount
  • x86 上未对齐的指针

    有人可以提供一个示例 将指针从一种类型转换为另一种类型由于未对齐而失败吗 在评论中这个答案 https stackoverflow com questions 544928 reading integer size bytes from a
  • mysql-connector-c++ - “get_driver_instance”不是“sql::mysql”的成员

    我是 C 的初学者 我认为学习的唯一方法就是接触一些代码 我正在尝试构建一个连接到 mysql 数据库的程序 我在 Linux 上使用 g 没有想法 我运行 make 这是我的错误 hello cpp 38 error get driver
  • 如何使用 std::string 将所有出现的一个字符替换为两个字符?

    有没有一种简单的方法来替换所有出现的 in a std string with 转义 a 中的所有斜杠std string 完成此操作的最简单方法可能是boost字符串算法库 http www boost org doc libs 1 46
  • 如何在 C++ BOOST 中像图形一样加载 TIFF 图像

    我想要加载一个 tiff 图像 带有带有浮点值的像素的 GEOTIFF 例如 boost C 中的图形 我是 C 的新手 我的目标是使用从源 A 到目标 B 的双向 Dijkstra 来获得更高的性能 Boost GIL load tiif

随机推荐

  • 在 Java EE 应用程序开发中使用 Docker

    我将添加300点作为赏金 我最近开始仔细研究 Docker 以及如何使用它来更快地让团队的新成员启动并运行开发环境 以及将新版本的软件交付到生产环境 我有一些关于如何以及在什么阶段将 Java EE 应用程序添加到容器的问题 据我所知 有多
  • 每个屏幕方向的文本大小不同?

    我正在开发一个计算器 在横向上我添加了更多按钮 因此每个按钮都会变得更小以适应额外的按钮 此时 我只是使用较小的字体大小 以便它们在横向模式下适合较小的按钮 但是我希望纵向上的文本比横向上的文本更大 我一直在尝试找出一种根据屏幕方向使用不同
  • 如何删除构建产品

    是否可以自动删除由生成的构建产品setup py脚本基于设置工具 我刚刚开始一个新的 Python 项目 这是我第一次使用设置工具作为一名开发人员 所以我可能会犯错 当我使用构建项目时python setup py bdist 三个目录 b
  • Java 安全管理器完全禁用反射

    我在 Stackoverflow 上阅读了很多关于这个问题的问题 但无法停止找到我的问题的解决方案或答案 如果已经有一个 如果有人给出提示 我将不胜感激 我的问题是是否可以完全禁用不可信代码的反射 功能类似于getDeclaredMetho
  • CSV 损坏,如何修复?

    我正在尝试解析 CSV 我想将它放入数据库或只是用 JavaScript 解析它 但由于语法损坏 任何一种方法都会失败 我的整个 CSV 文件在这里 https gist github com 1023560 https gist gith
  • RTIMER_NOW() 和clock_time() 之间的Contiki 区别

    我想知道之间的区别 RTIMER NOW and clock time 功能 我可以将它们返回的值存储在 int 变量中吗 它们返回的是整个模拟的时间还是调用它们的单个节点的时间 如果一个节点在模拟中第一个事件发生后 5 秒启动其主进程 这
  • 如何在谷歌地图的边缘创建填充

    我有一个非常繁忙的谷歌地图应用程序 我正在尝试在地图的外边缘周围创建一个 缓冲区 以便谷歌地图命令不会把东西放在那里 我的解决方案是创建不可见的 div 并将它们作为控件添加到地图中 每个边缘一个 这似乎很有效 因为所有谷歌命令都会看到它们
  • 无法覆盖 Rustup 工具链以自定义构建 iOS 工具链

    我正在用我的 Rust 版本创建我自己的工具链 我需要它与 iOS 架构进行交叉编译 当尝试设置默认工具链或覆盖当前目录的工具链时 我收到有关工具链名称的错误 以下是我创建这个新工具链所采取的步骤 创建 Rustup 工具链 rustup
  • Twitter Bootstrap 2:如何获得响应式设计以将侧边栏放在底部而不是顶部?

    Twitter 的 Bootstrap 2 http twitter github com bootstrap 最后添加了原生响应式设计 但是 默认情况下 当浏览器宽度低于最小宽度时 它将侧边栏放在顶部 我可以看到这对于许多网站来说是如何工
  • 执行 rebase 后,Git 提交会在同一分支中重复

    我理解 Pro Git 中提出的场景是关于变基的危险 https git scm com book en v2 Git Branching Rebasing rebase peril 作者基本上告诉你如何避免重复提交 不要对已推送到公共存储
  • Flex,连续扫描流(来自套接字)。我是否错过了使用 yywrap() 的某些内容?

    使用 Flex 进行模式识别 在基于套接字的扫描仪 连续流 上工作 Flex 找不到与 数组边界 重叠的匹配项 所以我实现了 yywrap 来设置新的数组内容 一旦 yylex 检测到 它将调用 yywrap 到目前为止还没有成功 基本上
  • Linux下对多个文件进行排序

    我有多个 很多 文件 每个都非常大 file0 txt file1 txt file2 txt 我不想将它们合并到一个文件中 因为生成的文件将超过 10 场演出 每个文件中的每一行都包含一个 40 字节的字符串 现在字符串的排序相当好 大约
  • 更快的第二好 MST 算法?

    我正在为此苦苦挣扎 我们可以使用 Kruskal 算法或 Prim 算法得到 MST 对于 第二好的 MST 我可以 首先使用上述任一算法获取 MST 对于来自 MST 的最优边缘的每个 V 1 A 首先删除或标记边缘b 继续计算 MST
  • 尝试使 Tableview 可点击时发生 JavaFX 错误

    我正在尝试使表格视图可单击 它将返回单击的单元格中的文本 尝试在 Netbeans 中编译时收到两个错误 所有代码均取自 示例12 11 单元格编辑的替代解决方案 官方表格视图教程 http docs oracle com javafx 2
  • 静态/动态类型与静态/动态绑定

    大家这4个术语有什么区别 能举个例子吗 Static and dynamic是指解决某些编程元素的时间点的行话 Static表示解析是在程序构建时发生的 Dynamic表示解析是在程序运行时发生的 静态和动态打字 Typing指由于数据值之
  • Spring webflux 中 Mono> 与 Flux 的区别

    我的理解是Mono
  • 在 Android 设备/模拟器上加载 NPAPI 插件

    我编译了从这个链接获得的示例 NPAPI 插件http code google com p npapi sdk http code google com p npapi sdk 使用NDK编译后 我得到了 so文件libs armeabi
  • 速度事件处理程序

    在速度中 当你执行 object variable 时 如果它无法找到 getter 函数 访问它或者 getter 返回 null 它只会在页面上显式显示 object variable 我知道有一个安静的参考 但我不想添加 对数千个变量
  • 针对 Laravel 后端的 Angular Auth

    我正在使用 Laravel 创建一个应用程序 并构建一个小型内部 API 来连接到 Angular 前端 我的身份验证工作正常 但想确保这是一种可接受的用户登录方式 并确保一切都是安全的 会话控制器 public function inde
  • XP 和 Vista 之间使用 Winsock API 的 UDP 多播差异

    Windows XP 和 Windows Vista 之间设置 UDP 多播套接字所需的实现似乎有所不同 具体来说 在 Windows XP 下 您must call bind 在您可以引用任何特定于多播的套接字选项之前 然而 在windo