三、如何测试mina的服务端

  1、创建自己的mina客户端

public IoConnector creatClient() {
  NioSocketConnector connector = null;
  try {
   connector = new NioSocketConnector();
   connector.getSessionConfig().setReadBufferSize(1024 * 1024 * 5);
   connector.getSessionConfig().setBothIdleTime(10);
   connector.getSessionConfig().setKeepAlive(true);
   connector.setHandler(new MyIoHandler());
   connector.getFilterChain().addLast("codec",
     new ProtocolCodecFilter(new DecodeFactory()));
   connector.setConnectTimeoutMillis(5000);
  } catch (Exception e) {
   e.printStackTrace();
  }
  return connector;
 }

  2、重写Hanlder类,其中重要的messageReciever方法需要先写好如何处理收到的数据,包括断言等

@Override
 public void sessionCreated(IoSession session) throws Exception {
  logger.info("服务端与客户端创建连接...");
 }
 @Override
 public void sessionOpened(IoSession session) throws Exception {
  logger.info("服务端与客户端连接打开..."+ "当前第" + session.getId() + "个客户端");
 }
 @Override
 public void messageReceived(IoSession session, Object message)
   throws Exception {
  if (message instanceof IoBuffer) {  
   ServerResponse.getResponseInfo(session,(IoBuffer)message);
  }
 }
 @Override
 public void messageSent(IoSession session, Object message) throws Exception {
  logger.info("服务端发送信息成功...");
 }
 @Override
 public void sessionClosed(IoSession session) throws Exception {
  logger.info("服务端与客户端连接断开...");
 }

 @Override
 public void sessionIdle(IoSession session, IdleStatus status)
   throws Exception {
  logger.info("服务端进入空闲状态..."); 
 }
 @Override
 public void exceptionCaught(IoSession session, Throwable cause)
   throws Exception {
  logger.error("服务端发送异常...", cause);
 }