ResolverService跨子网的广播问题

时间:2023-02-09 20:40:19

ResolverService在广播请求时,需要借助McastTransport,而McastTransport利用java.net.MulticastSocket进行收发,java.net.MulticastSocket是Java中的多播数据报套接字类,用于发送和接收 IP 多播包。这样必须路由器硬件支持多播,才能将请求广播到子网外,否则只有同一子网的结点能够接收到请求(如果结点连接到rdv, 那么rdv也可以收到请求,但是连接到同一个rdv的不在同一子网的结点却收不到请求,除非rdv再给所有结点发送该请求)。

如果ResolverService不是广播请求,而是给某个特定的结点发送请求,则特定结点是可以收到请求的。

————————————————————————————————————————————————————————————————————————

这样,ResolverService的应用范围进一步缩小,如果有多播的请求,还是利用net.jxta.socket.JxtaMulticastSocket实现。

————————————————————————————————————————————————

问题:依赖于ResolverService的DiscoveryService是否同样存在这个问题呢?