List of usage examples for io.netty.channel.socket.nio NioDatagramChannel connect
@Override
public ChannelFuture connect(SocketAddress remoteAddress)
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 w w .j a v a2 s. co m*/ 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(); } } }