开发者

How do I send UDP packet from a specific interface on Linux?

How 开发者_Python百科do I send UDP packet from a specific interface on Linux using C? Should I use bind? Is it possible to send UDP from the interface not having IP address?

Thanks.


Use bind. You cannot send UDP packets via an interface that does not have an IP address, because UDP uses the Internet Protocol and the Internet Protocol requires an IP address.


You can bind a socket to a specific interface by using the SO_BINDTODEVICE socket option, however this requires root privileges.

Alternately, you can set the IP_PKTINFO option, and use sendmsg for sending, setting the in_pktinfo's ipi_ifindex to the index of your interface.


You need to use socket option IP_MULTICAST_IF.

See here: Multicast-HOWTO-6.html

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜