【问题标题】:Sending multicast udp from multihomed computer从多宿主计算机发送多播 udp
【发布时间】:2020-04-14 03:31:46
【问题描述】:

我需要从多宿主计算机发送多播 udp。发现如果套接字未绑定到某个特定接口,将使用默认接口(无论它可能意味着什么)。我的问题:是否可以指定诸如 inaddr_any 之类的东西来从所有可用接口发送多播 udp,还是只能通过枚举所有接口并从每个接口手动发送来做到这一点?有标准吗? 谢谢

【问题讨论】:

    标签: c udp posix multicast


    【解决方案1】:

    您可以通过设置IP_MULTICAST_IF 套接字选项来设置 IPv4 多播数据包从哪个网络接口离开。传递给setsockopt 的值应该是struct in_addr 的地址,其中包含相关接口的IP 地址。

    如果要在多个接口上发送多播数据包,则需要多次调用sendto,并在每个接口之前设置IP_MULTICAST_IF 选项。

    【讨论】:

    • 我知道我可以明确设置界面。我问了另一件事。问题是:1)是否可以通过所有接口发送而不通过每个接口手动发送? 2) 是否有描述这种行为的标准文档?
    • @BbIKTOP 一个数据包只能从一个接口离开。您需要遍历它们才能从多个发送。
    • 我不能使用匿名评论作为参考。它在任何标准文件中都有说明吗?
    • @BbIKTOP 我不知道任何与套接字应该如何工作相关的标准文档。套接字 API 起源于 BSD UNIX,其他操作系统采用它,但略有不同。
    • 我询问了标准,我知道它在 bsd 等中是如何工作的,但感谢您让我知道您不知道
    猜你喜欢
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 2010-09-08
    • 1970-01-01
    • 2019-08-08
    • 1970-01-01
    • 2011-09-14
    相关资源
    最近更新 更多