【问题标题】:Netty UDP multicast not working on windowsNetty UDP多播在Windows上不起作用
【发布时间】:2015-06-30 10:31:16
【问题描述】:

几天来,我一直试图让 udp 多播在 Windows 上运行,但没有成功。这是一个简单的应用程序,它只是加入一个组并写入在 OSX 上工作但在 Windows 上引发通道关闭异常的控制台。任何帮助将不胜感激。

    public class UDPMulticastTest {

    public void start() throws Exception{
        EventLoopGroup group=new NioEventLoopGroup();
        ChannelGroup allChannels=new DefaultChannelGroup("Test", ImmediateEventExecutor.INSTANCE);
        try{
            Bootstrap b=new Bootstrap();
            b.group(group)
            .channel(NioDatagramChannel.class)
            .option(ChannelOption.SO_BROADCAST,true)
            .handler(new SimpleChannelInboundHandler<DatagramPacket>() {

                @Override
                protected void channelRead0(ChannelHandlerContext arg0, DatagramPacket arg1) throws Exception {
                    String res=arg1.content().toString(CharsetUtil.UTF_8);
                    System.out.println(res);

                }
            });

            InetSocketAddress hostAddress=new InetSocketAddress("239.21.208.200", 58999);
            ChannelFuture channelFuture=b.bind(hostAddress);
            channelFuture.awaitUninterruptibly();
            Channel channel=channelFuture.channel();
            DatagramChannel datagramChannel=(DatagramChannel)channel;
            NetworkInterface multicastNetworkInterface=NetworkInterface.getByName("wlan0"); //used en0 for OSX, 
            datagramChannel.joinGroup(hostAddress, multicastNetworkInterface).syncUninterruptibly();
            allChannels.add(datagramChannel);
            channel.closeFuture().await();

        }finally{
            group.shutdownGracefully();
        }
    }
    public static void main(String[] args)throws Exception{
       new UDPMulticastTest().start();
    }
  }

【问题讨论】:

    标签: java udp netty nio multicast


    【解决方案1】:

    发现问题出在加入组之前绑定到多播地址,由于某种原因,这在 Windows 上不起作用。必须更新 bootstrap.bind 看起来像这样

    ChannelFuture channelFuture=b.bind(new InetSocketAddress(PORT_NUMBER));

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-20
      • 1970-01-01
      • 2012-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多