如何从Linux上的特定接口发送UDP数据包?

时间:2011-01-03 13:40:30

标签: c linux sockets udp

如何使用C从Linux上的特定接口发送UDP数据包?我应该使用bind吗?是否可以从没有IP地址的接口发送UDP?

感谢。

3 个答案:

答案 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。

见这里:Multicast-HOWTO-6.html