一台机器有两个以太网端口,并使用它们连接到网络(用于冗余)。另一台机器定期向整个网络发送 UDP 广播。
我需要检测通过哪个以太网端口接收广播。我需要知道这一点,因为如果一个以太网端口(线路)出现故障,我需要标记无效端口。
目前我正在使用 recvfrom() 套接字函数来接收 UDP 广播,但我不知道如何判断实际接收到的 UDP 数据包是通过哪个以太网端口。
最佳答案
我从来没有在纯 C 中做过这件事,但您应该能够在调用 recvfrom 之前将您的套接字绑定(bind)到特定的适配器,因此您将在这里有两个 UDP 监听器 - 每个适配器一个。
关于c - 在具有两个以太网端口的机器上接收 UDP 广播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17709177/