如何在Haskell中指定本地绑定接口来组播套接字?

我已经尝试了Network.Multicast包,但它确实工作,但是,我找不到指定本地绑定接口(“bond0”或“bond1”等)到组播套接字的方法。 我知道在CI需要使用ioctl将债券转换为结构sockaddr_in,然后将此结构提供给IPPROTO_IP系列的setsockopt IP_MULTICAST_IF选项,但我不知道如何在Haskell中做到这一点。 有人能帮忙吗? 谢谢!

Solutions Collecting From Web of "如何在Haskell中指定本地绑定接口来组播套接字?"

在网络多播[1]的来源,我看到在setInterface函数中设置ip_multicast_if的调用。 它总是调用你传入的主机字符串的inet_addr的结果。

[1] http://hackage.haskell.org/packages/archive/network-multicast/0.0.6/doc/html/src/Network-Multicast.html

我会想象你需要编写你自己的ffi绑定和函数来做你想做的事情。 但是,根据网络多播中的代码,这应该很简单,我相信一旦你这样做了,它将成为图书馆的一个受欢迎的补丁。