论坛首页 Java企业应用论坛

Apache Mina 2.0的学习研究(二)

浏览 3594 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (12) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-01-22   最后修改:2010-01-22

package cn.com.unutrip.java.opensource.mina.guide;

import java.net.InetSocketAddress;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.mina.core.service.IoConnector;
import org.apache.mina.core.service.IoHandlerAdapter;
import org.apache.mina.core.session.IoSession;
import org.apache.mina.filter.codec.ProtocolCodecFilter;
import org.apache.mina.filter.codec.textline.TextLineCodecFactory;
import org.apache.mina.filter.logging.LoggingFilter;
import org.apache.mina.transport.socket.nio.NioSocketConnector;

/**
 *
 * 常用的客户端对象IoConnector 和NioSocketConnector
 * @author longgangbai
 *
 */
public class IoHandlerStyleTimeClient {

 private static final Log log = LogFactory
   .getLog(IoHandlerStyleTimeClient.class);

 public static void main(String[] args) {
  //创建一个客户端连接器对象
  //IoConnector 不仅仅对应单个客户端套接字,而是一个客户端套接字工厂
  //利用IoConnector 对不同的远端地址,发起连接,便可以得到多个对应于客户端与不同服务端监听地址所建立TCP连接的的IoSession对象
  IoConnector connector = new NioSocketConnector();
  //设置IOHandler的处理器:正常情况下为重写方法
  connector.setHandler(new IoHandlerAdapter() {
             @Override
    public void messageReceived(final IoSession session,
     final Object mesage) {
    log.info(mesage);
   }
  });
  //设置文本编解码过滤器工厂
  connector.getFilterChain().addLast("codec",
    new ProtocolCodecFilter(new TextLineCodecFactory()));
  //设置日志工厂过滤器
  connector.getFilterChain().addLast("logging", new LoggingFilter());
  //设置连接的服务主机和IP
  connector.connect(new InetSocketAddress(8123));
  //销毁客户端对象
  connector.dispose();
 }
}

论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics