如何在Linux上使用C发送来自特定接口的UDP数据包? 我应该使用绑定? 是否可以从没有IP地址的接口发送UDP?
谢谢。
您可以使用SO_BINDTODEVICE
套接字选项将套接字绑定到特定的接口,但是这需要root权限。
或者,您可以设置IP_PKTINFO
选项,并使用sendmsg
进行发送,将in_pktinfo
的ipi_ifindex
设置为接口的索引。
使用绑定。 您不能通过没有IP地址的接口发送UDP数据包,因为UDP使用Internet协议,Internet协议需要IP地址。
您需要使用套接字选项IP_MULTICAST_IF。
看到这里: Multicast-HOWTO-6.html