List of usage examples for org.apache.mina.api IoHandler IoHandler
IoHandler
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 w w w.j ava 2 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; } }