/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ import compression.MultiStringFilter; import java.io.IOException; import java.nio.charset.StandardCharsets; import java.util.Arrays; import java.util.List; import java.util.concurrent.TimeUnit; import org.glassfish.grizzly.Connection; import org.glassfish.grizzly.filterchain.BaseFilter; import org.glassfish.grizzly.filterchain.FilterChain; import org.glassfish.grizzly.filterchain.FilterChainBuilder; import org.glassfish.grizzly.filterchain.FilterChainContext; import org.glassfish.grizzly.filterchain.NextAction; import org.glassfish.grizzly.filterchain.TransportFilter; import org.glassfish.grizzly.nio.transport.TCPNIOTransport; import org.glassfish.grizzly.nio.transport.TCPNIOTransportBuilder; /** * * @author oleksiys */ public class MSClient { public static void main(String[] args) throws Exception { FilterChain fc = FilterChainBuilder.stateless() .add(new TransportFilter()) .add(new MultiStringFilter(StandardCharsets.UTF_8, "\n")) .add(new BaseFilter() { @Override public NextAction handleRead(FilterChainContext ctx) throws IOException { final List stringList = ctx.getMessage(); System.out.println("server responded: " + stringList); return ctx.getStopAction(); } }).build(); TCPNIOTransport transport = TCPNIOTransportBuilder .newInstance() .setProcessor(fc) .build(); try { transport.start(); final Connection c = transport.connect("localhost", 7777).get(10, TimeUnit.SECONDS); c.write(Arrays.asList("Hello", "world", "!")); System.out.println("Press enter to stop"); System.in.read(); } finally { transport.shutdownNow(); } }}