我正在netty上构建一个UPnP服务器(ala Holmes但是所有协议栈的纯netty - 寻址,发现,描述,控制,事件,演示和带外流 - 没有粘连框架等。) / p>
我有UDP多播自举工作,但它看起来并不优雅(我已经做了一些工作来制定可行的接口等)。
我无法弄清楚(没有更多追踪)netty如何使用特定接口?我认为这是它的工作原理:
我可以指定多个界面,还是只指定一个或全部?
有没有人知道一个简单的工具,可以巧妙地设计可行的接口(标准的JDK NetworkInterfaces当安装了虚拟机管理程序时,如果有虚拟接口等,它们不会很好用 - 而且它们不会显示出来如虚拟的那样?
对于组播需要加入组以发送到组播地址: channel.joinGroup(" 239.255.255.250",NetworkInterface.getByName(" en0"))。syncUninterruptibly(); 看起来只能绑定到一个接口 - 不确定当从一个接口发送但接收到另一个接口时会如何影响,反之亦然(upnp规范看起来特别关注这个 - "多宿主设备必须执行每个启用UPnP的接口上的SSDP公告程序。")。
如果连接多次,它会运行: channel.joinGroup(" 239.255.255.250",NetworkInterface.getByName(" en0"))。syncUninterruptibly(); channel.joinGroup(" 239.255.255.250",NetworkInterface.getByName(" en1"))。syncUninterruptibly();
如果尝试并使用joinGroup(InetAddress multicastAddress),它会编译,但我收到运行时错误。
从群集的引导程序设置中获取相同接口的最佳/最简单方法是什么?