Example usage for io.netty.channel.socket.nio NioDatagramChannel remoteAddress

List of usage examples for io.netty.channel.socket.nio NioDatagramChannel remoteAddress

Introduction

In this page you can find the example usage for io.netty.channel.socket.nio NioDatagramChannel remoteAddress.

Prototype

@Override
    public InetSocketAddress remoteAddress() 

Source Link

Usage

From source file:com.barchart.netty.server.stream.MulticastTransceiver.java

License:BSD License

@Override
public Future<MulticastTransceiver> shutdown() {

    for (final Channel c : serverChannels) {

        final NioDatagramChannel dc = (NioDatagramChannel) c;

        final InetSocketAddress multicast = dc.remoteAddress();

        dc.leaveGroup(multicast, dc.config().getOption(ChannelOption.IP_MULTICAST_IF));

    }//from  w  w w  .j ava2s .c  o  m

    return super.shutdown();

}

From source file:org.opendaylight.usc.agent.UscAgentUdp.java

License:Open Source License

public UscAgentUdp(boolean callHome, InetAddress host, String propertyFile) {
    final UscAgentUdp agent = this;
    UscConfigurationServiceImpl.setDefaultPropertyFilePath(propertyFile);
    secureService = UscServiceUtils.getService(UscSecureService.class);
    b.group(bossGroup);//from w  ww .j  a va  2  s.c  om
    b.channel(NioDatagramChannel.class);
    b.handler(new ChannelInitializer<NioDatagramChannel>() {
        @Override
        public void initChannel(NioDatagramChannel ch) throws Exception {
            ChannelPipeline p = ch.pipeline();
            agentServerChannel = ch;
            p.addLast(new ChannelInboundHandlerAdapter() {

                @Override
                public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
                    final Channel ch = ctx.channel();
                    final InetSocketAddress remoteAddress = ((DatagramPacket) msg).sender();

                    // this is to deal with UDP channels which don't by
                    // default have remote address
                    if (ch.remoteAddress() == null) {
                        ch.connect(remoteAddress);
                    }
                    ch.pipeline().remove(this);
                    super.channelRead(ctx, msg);
                }

            });
            if (secureService == null) {
                LOG.error("UscSecureService is not initialized!");
                return;
            }
            p.addLast(new LoggingHandler("UscAgnet Handler 5", LogLevel.TRACE));
            p.addLast(secureService.getUdpServerHandler(ch));
            p.addLast(new LoggingHandler("UscAgnet Handler 4", LogLevel.TRACE));
            p.addLast(new UscFrameEncoderUdp());
            p.addLast(new LoggingHandler("UscAgnet Handler 3", LogLevel.TRACE));
            p.addLast(new UscFrameDecoderUdp());
            p.addLast(new LoggingHandler("UscAgnet Handler 2", LogLevel.TRACE));
            p.addLast(new UscAgentUdpHandler(agent, ch));
            p.addLast(new LoggingHandler("UscAgnet Handler 1", LogLevel.TRACE));

        }
    });

    if (callHome) {
        cb.group(callHomeGroup);
        cb.channel(NioDatagramChannel.class);
        cb.handler(new ChannelInitializer<NioDatagramChannel>() {
            @Override
            public void initChannel(NioDatagramChannel ch) throws Exception {
                ChannelPipeline p = ch.pipeline();
                agentServerChannel = ch;
                p.addLast(new ChannelInboundHandlerAdapter() {

                    @Override
                    public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
                        final Channel ch = ctx.channel();
                        final InetSocketAddress remoteAddress = ((DatagramPacket) msg).sender();

                        // this is to deal with UDP channels which don't by
                        // default have remote address
                        if (ch.remoteAddress() == null) {
                            ch.connect(remoteAddress);
                        }
                        ch.pipeline().remove(this);
                        super.channelRead(ctx, msg);
                    }

                });
                if (secureService == null) {
                    LOG.error("UscSecureService is not initialized!");
                    return;
                }
                p.addLast(new LoggingHandler("LOG2-5", LogLevel.TRACE));
                p.addLast(secureService.getUdpClientHandler(ch));
                p.addLast(new LoggingHandler("LOG2-4", LogLevel.TRACE));
                p.addLast(new UscFrameEncoderUdp());
                p.addLast(new LoggingHandler("LOG2-3", LogLevel.TRACE));
                p.addLast(new UscFrameDecoderUdp());
                p.addLast(new LoggingHandler("LOG2-2", LogLevel.TRACE));
                p.addLast(new UscAgentUdpHandler(agent, ch));
                p.addLast(new LoggingHandler("LOG2-1", LogLevel.TRACE));

            }
        });

        try {
            InetSocketAddress recipient = new InetSocketAddress(host, 1069);
            cb.connect(recipient).sync().channel();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}