static List<BootstrapFactory<Bootstrap>> sctpClientChannel() { if (!TestUtils.isSctpSupported()) { return Collections.emptyList(); } List<BootstrapFactory<Bootstrap>> list = new ArrayList<BootstrapFactory<Bootstrap>>(); list.add(new BootstrapFactory<Bootstrap>() { @Override public Bootstrap newInstance() { return new Bootstrap().group(nioWorkerGroup).channel(NioSctpChannel.class); } }); list.add(new BootstrapFactory<Bootstrap>() { @Override public Bootstrap newInstance() { return new Bootstrap().group(oioWorkerGroup).channel(OioSctpChannel.class); } }); return list; }
static List<Factory<Bootstrap>> sctpClientChannel() { if (!TestUtils.isSctpSupported()) { return Collections.emptyList(); } List<Factory<Bootstrap>> list = new ArrayList<Factory<Bootstrap>>(); list.add(new Factory<Bootstrap>() { @Override public Bootstrap newInstance() { return new Bootstrap().group(nioWorkerGroup).channel(NioSctpChannel.class); } }); list.add(new Factory<Bootstrap>() { @Override public Bootstrap newInstance() { return new Bootstrap().group(oioWorkerGroup).channel(OioSctpChannel.class); } }); return list; }
public void run() throws Exception { // Configure the client. EventLoopGroup group = new OioEventLoopGroup(); try { Bootstrap b = new Bootstrap(); b.group(group) .channel(OioSctpChannel.class) .option(SctpChannelOption.SCTP_NODELAY, true) .handler(new ChannelInitializer<SctpChannel>() { @Override public void initChannel(SctpChannel ch) throws Exception { ch.pipeline().addLast( new LoggingHandler(LogLevel.INFO), new SctpEchoClientHandler(firstMessageSize)); } }); // Start the client. ChannelFuture f = b.connect(host, port).sync(); // Wait until the connection is closed. f.channel().closeFuture().sync(); } finally { // Shut down the event loop to terminate all threads. group.shutdownGracefully(); } }