我已经尝试过 Network.Multicast 包并且它确实有效,但是,我找不到为多播套接字指定本地绑定接口(“bond0”或“bond1”等)的方法。我知道在C中我需要使用ioctl将键转换为struct sockaddr_in,然后将该结构提供给setsockopt的IPPROTO_IP系列下的IP_MULTICAST_IF选项,但我不知道如何在Haskell中执行此操作。有人能帮忙吗?谢谢!
在网络多播 [1] 的源代码中,我看到在 setInterface 函数中调用了 set ip_multicast_if 。它总是被调用,结果为inet_addr
在您传入的主机字符串上。
[1] http://hackage.haskell.org/packages/archive/network-multicast/0.0.6/doc/html/src/Network-Multicast.html http://hackage.haskell.org/packages/archive/network-multicast/0.0.6/doc/html/src/Network-Multicast.html
我想您需要编写自己的 ffi 绑定和函数来完成您想要的操作。但根据网络多播中的代码,这样做应该很简单,而且我确信一旦你这样做,这将是库的一个受欢迎的补丁。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)