Netty UDP 单播

雷泡泡 发布于 2016/04/08 11:26
阅读 558
收藏 0

@啡色地带  您好,还是想问您一些十分困扰的问题,我在想实现UDP单播时出现了以下问题:(非常简单的测试代码,还想让您看一下)

我先启动server端,没有开启client端,但是这时候会触发channelActive,也就是说会输出hello client和server;但是不是应该是在客户端和服务端连接建立后才会触发channelActive这个函数么?是不是server端的option那里应该设置什么东西?UDP的单播到底要怎样实现呢?希望能被敲醒啊~

我的server端代码如下:

启动类:

public class server {
    
    public void run(int port) throws Exception{
        EventLoopGroup group=new NioEventLoopGroup();
        try{
            Bootstrap b=new Bootstrap();
            b.group(group).channel(NioDatagramChannel.class)
             //.option(ChannelOption.SO_BROADCAST,true)
             .handler(new serverHandler());
           
            b.bind(port).sync().channel().closeFuture().await();
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            group.shutdownGracefully();
        }
    }
    
    public static void main(String[] args) throws Exception{
        
        int port=6636;
        if(args.length>0){
            try{
                port=Integer.parseInt(args[0]);
            }catch(NumberFormatException e){
                e.printStackTrace();
            }
        }
        System.out.println(port);
        new server().run(port);
    }

}
handler类:
public class serverHandler extends ChannelHandlerAdapter{
    public void channelActive(ChannelHandlerContext ctx){
        ctx.writeAndFlush("hello client");
        System.out.println("server");
    }
}




加载中
返回顶部
顶部