mina在eclipse下的用法

找了半天eclipse配置mina库的教程,终于找到了。感谢!


1.mina教程1

http://www.cnblogs.com/xiaoblog/p/4331703.html

2. mina教程2

http://www.cnblogs.com/wucao/p/3934913.html

参考: mina教程

http://www.cnblogs.com/xiaoblog/p/4331703.html


关于mina介绍这里不做阐述.....

我们先做一个关于mina的helloworld

首先先下载mina包:http://mina.apache.org/ (如果你已经下载,此步骤忽略)

下载下来以后,我们主要是使用里面jar包

 

接下来打开eclipse,建立Java Project

引入jar包,根据官方文档提示:

我们所引入的jar文件为:

继续,开始写代码,我们先写一个server:

package  org.xs.mina;
 
import  java.io.IOException;
import  java.net.InetSocketAddress;
import  java.nio.charset.Charset;
 
import  org.apache.mina.core.service.IoAcceptor;
import  org.apache.mina.core.session.IdleStatus;
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.NioSocketAcceptor;
 
public  class  MinaTimeServer {
     private  static  final  int  PORT = 9123 ;
     public  static  void  main(String[] args) {
         //socket接收器
         IoAcceptor acceptor = new  NioSocketAcceptor();
 
         //添加日志记录
         acceptor.getFilterChain().addLast( "logger" , new  LoggingFilter());
         //添加编码解码器
         acceptor.getFilterChain().addLast( "codec" , new  ProtocolCodecFilter( new  TextLineCodecFactory(Charset.forName( "UTF-8" ))));
         //添加处理器(用于接收数据后处理处理数据逻辑)
         acceptor.setHandler(  new  TimeServerHandler() );
         //设置读取数据缓存单位byte 
         acceptor.getSessionConfig().setReadBufferSize( 2048  );
         //设置多长时间后接收器开始空闲
         acceptor.getSessionConfig().setIdleTime( IdleStatus.BOTH_IDLE, 10  );
         try  {
             //绑定某个端口,作为数据入口 
             acceptor.bind( new  InetSocketAddress(PORT) );
         } catch  (IOException e) {
             e.printStackTrace();
         }
     }
}

 

定义处理器:

package  org.xs.mina;
 
import  java.util.Date;
 
import  org.apache.mina.core.service.IoHandlerAdapter;
import  org.apache.mina.core.session.IdleStatus;
import  org.apache.mina.core.session.IoSession;
 
 
public  class  TimeServerHandler extends  IoHandlerAdapter {
 
     //捕获异常
     @Override
     public  void  exceptionCaught( IoSession session, Throwable cause ) throws  Exception
     {
         cause.printStackTrace();
     }
     //消息接收
     @Override
     public  void  messageReceived( IoSession session, Object message ) throws  Exception
     {
         String str = message.toString();
         if ( str.trim().equalsIgnoreCase( "quit" ) ) {
             session.close();
             return ;
         }
         System.out.println( "my message>>>>>>>>>>" +str);
         Date date = new  Date();
         session.write( date.toString() );
     }
     //会话空闲
     @Override
     public  void  sessionIdle( IoSession session, IdleStatus status ) throws  Exception
     {
         System.out.println( "IDLE "  + session.getIdleCount( status ));
     }
}

 

接下来,我们把server类,run起来,我们模拟下tcp调用,打开cmd命令行:C:\Users\xiao>telnet 127.0.0.1 9123

 

连接服务器,输入hello...

 

客户端:

服务端:

 

详细信息参考官方文档:http://mina.apache.org/mina-project/quick-start-guide.html

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值