gpt4 book ai didi

sockets - 在 UDP 套接字上查找接口(interface)

转载 作者:行者123 更新时间:2023-12-03 11:56:07 25 4
gpt4 key购买 nike

我有一个应用程序,其中我使用 SO_BINDTODEVICE 将一个套接字绑定(bind)到几个传出接口(interface)。

现在的问题是当我收到响应时,我需要知道它来自哪个接口(interface)。仅响应来自的 ip 地址是不够的,因为同一个 ip 绑定(bind)到多个接口(interface)。

我使用了 stackoverflow 问题中提供的以下代码。但它未能在 for 循环的第二次迭代中给出段错误(第一次迭代进入循环的 continue 部分)。

有人可以帮忙吗?

C++ DGRAM socket get the RECEIVER address

How to tell which interface the socket received the message from?

最佳答案

问题已解决。 IP_PKTINFO 选项应该在创建套接字之后立即设置,然后再使用套接字,它工作正常。

就我而言,我在创建后使用套接字发送数据,然后将数据添加到选择描述符集以供读取。最后,在调用接收之前,我正在设置 IP_PKTINFO,它总是返回接口(interface)索引 0。

关于sockets - 在 UDP 套接字上查找接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9363881/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com