Example usage for org.apache.mina.transport.nio NioTcpClient NioTcpClient

List of usage examples for org.apache.mina.transport.nio NioTcpClient NioTcpClient

Introduction

In this page you can find the example usage for org.apache.mina.transport.nio NioTcpClient NioTcpClient.

Prototype

public NioTcpClient() 

Source Link

Document

Create a TCP client with new selector pool of default size and a IoHandlerExecutor of default type ( OrderedHandlerExecutor )

Usage

From source file:com.hongweiyi.jmeter.client.Mina3TcpBenchmarkClient.java

License:Apache License

@Override
public Object getClient(int port, final RecvCounterCallback clientCallback, String... params) throws Exception {
    client = new NioTcpClient();
    client.getSessionConfig().setSendBufferSize(64 * 1024);
    client.getSessionConfig().setTcpNoDelay(true);
    client.setIoHandler(new IoHandler() {

        @Override/*from ww w . j ava2 s.  c  om*/
        public void sessionOpened(IoSession session) {
        }

        @Override
        public void messageReceived(IoSession session, Object message) {
            if (message instanceof ByteBuffer) {
                ByteBuffer buffer = (ByteBuffer) message;
                int length = buffer.remaining();
                while (length-- > 0) { // server responses only one byte
                    clientCallback.receive();
                }
            } else {
                throw new IllegalArgumentException(message.getClass().getName());
            }
        }

        @Override
        public void exceptionCaught(IoSession session, Exception cause) {
            cause.printStackTrace();
        }

        @Override
        public void sessionClosed(IoSession session) {
        }

        @Override
        public void sessionIdle(IoSession session, IdleStatus status) {
        }

        @Override
        public void messageSent(IoSession session, Object message) {
        }

        @Override
        public void serviceActivated(IoService service) {
        }

        @Override
        public void serviceInactivated(IoService service) {
        }
    });

    try {
        return client.connect(new InetSocketAddress(port)).get();
    } catch (InterruptedException e) {
        throw e;
    } catch (ExecutionException e) {
        throw e;
    }
}

From source file:com.semion.demo.mina.NioEchoClient.java

License:Apache License

public static void main(String[] args) {
    LOG.info("starting echo client");

    final NioTcpClient client = new NioTcpClient();
    client.setFilters();/*from  ww  w  .jav  a  2  s  .com*/
    client.setIoHandler(new AbstractIoHandler() {
        @Override
        public void sessionOpened(final IoSession session) {
            LOG.info("session opened {}", session);
        }

        @Override
        public void messageReceived(IoSession session, Object message) {
            LOG.info("message received {}", message);
            if (message instanceof ByteBuffer) {
                LOG.info("echoing");
                session.write(message);
            }
        }

        @Override
        public void messageSent(IoSession session, Object message) {
            LOG.info("message sent {}", message);
        }

        @Override
        public void sessionClosed(IoSession session) {
            LOG.info("session closed {}", session);
        }
    });

    try {
        IoFuture<IoSession> future = client.connect(new InetSocketAddress("localhost", 9999));

        try {
            IoSession session = future.get();
            LOG.info("session connected : {}", session);
        } catch (ExecutionException e) {
            LOG.error("cannot connect : ", e);
        }

        LOG.debug("Running the client for 25 sec");
        Thread.sleep(25000);
    } catch (InterruptedException e) {
    }
}