如何使用C从Linux上的特定接口发送UDP数据包?我应该使用bind吗?是否可以从没有IP地址的接口发送UDP?
感谢。
答案 0 :(得分:7)
使用bind。您不能通过没有IP地址的接口发送UDP数据包,因为UDP使用Internet协议,而Internet协议需要IP地址。
答案 1 :(得分:4)
您可以使用SO_BINDTODEVICE
套接字选项将套接字绑定到特定接口,但这需要root权限。
或者,您可以设置IP_PKTINFO
选项,并使用sendmsg
进行发送,将in_pktinfo
的{{1}}设置为您的界面索引。
答案 2 :(得分:0)
您需要使用套接字选项IP_MULTICAST_IF。