HTTP over Multicast UDP(SSDP)

时间:2014-09-14 12:20:28

标签: netty

我正在netty上构建一个UPnP服务器(ala Holmes但是所有协议栈的纯netty - 寻址,发现,描述,控制,事件,演示和带外流 - 没有粘连框架等。) / p>

我有UDP多播自举工作,但它看起来并不优雅(我已经做了一些工作来制定可行的接口等)。

我无法弄清楚(没有更多追踪)netty如何使用特定接口?我认为这是它的工作原理:

  • 如果只是在bootstrap中使用端口号,例如.localAddress(1900)然后将绑定并监听wlldcard / all接口(0.0.0.0),内核将找出要做的事情。
  • 如果指定InetAddress / SocketAddress,则将绑定到此单个例如.localAddress(“127.0.0.1”,1900)
  • 如果尝试并指定倍数,例如 .localAddress(“127.0.0.1”,1900) .localAddress(“10.1.1.2”,1900) (日志处理程序显示绑定到指定的最后一个)

我可以指定多个界面,还是只指定一个或全部?

有没有人知道一个简单的工具,可以巧妙地设计可行的接口(标准的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),它会编译,但我收到运行时错误。

从群集的引导程序设置中获取相同接口的最佳/最简单方法是什么?

0 个答案:

没有答案