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

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

Introduction

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

Prototype

@Override
public void setIoHandler(final IoHandler handler) 

Source Link

Usage

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();//w ww . jav a 2s. c o m
    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) {
    }
}