Windows Mina 2.0.7 环境搭建

所需文件

可参考http://mina.apache.org/mina-project/quick-start-guide.htm

下载完成安装或解压之后,打开eclipse创建java项目

添加类

MinaServer

 1 import java.io.IOException;
 2 import java.net.InetSocketAddress;
 3 
 4 import org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder;
 5 import org.apache.mina.filter.codec.ProtocolCodecFilter;
 6 import org.apache.mina.filter.codec.serialization.ObjectSerializationCodecFactory;
 7 import org.apache.mina.transport.socket.SocketAcceptor;
 8 import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
 9 
10 
11 public class MinaServer   
12 {  
13     public static void main(String[] args)  
14     {  
15         //创建ServerScoket  
16         SocketAcceptor acceptor = new NioSocketAcceptor();  
17         //设置传输方式(这里设置成对象传输模式,还有很多的类型后面会具体讲到  
18         DefaultIoFilterChainBuilder chain = acceptor.getFilterChain();  
19         ProtocolCodecFilter filter = new ProtocolCodecFilter(  
20                 new ObjectSerializationCodecFactory());  
21         chain.addLast("objectFilter", filter);  
22         // 添加消息处理  
23   
24         acceptor.setHandler(new MinaServerHanlder());  
25         // 开启服务器   
26         int bindPort = 9999;  
27         try {  
28                       acceptor.bind(new InetSocketAddress(bindPort));  
29         } catch (IOException e) {  
30                             e.printStackTrace();  
31                   }  
32     }  
33   
34 }  
View Code

MinaServerHandler

 1 import org.apache.mina.core.service.IoHandler;
 2 import org.apache.mina.core.session.IdleStatus;
 3 import org.apache.mina.core.session.IoSession;
 4 
 5 
 6 public class MinaServerHanlder implements IoHandler {
 7 
 8     @Override
 9     public void exceptionCaught(IoSession arg0, Throwable arg1)
10             throws Exception {
11         // TODO Auto-generated method stub
12 
13     }
14 
15     @Override
16     public void messageReceived(IoSession arg0, Object arg1) throws Exception {
17         // TODO Auto-generated method stub
18         System.out.println("服务端接受到了消息" + arg1) ;
19     }
20 
21     @Override
22     public void messageSent(IoSession arg0, Object arg1) throws Exception {
23         // TODO Auto-generated method stub
24         System.out.println("服务端发送消息" + arg1) ;
25     }
26 
27     @Override
28     public void sessionClosed(IoSession arg0) throws Exception {
29         // TODO Auto-generated method stub
30             
31     }
32 
33     @Override
34     public void sessionCreated(IoSession arg0) throws Exception {
35         // TODO Auto-generated method stub
36         System.out.println("服务端创建Session") ;
37     }
38 
39     @Override
40     public void sessionIdle(IoSession arg0, IdleStatus arg1) throws Exception {
41         // TODO Auto-generated method stub
42         System.out.println("服务端空闲Session") ;
43     }
44 
45     @Override
46     public void sessionOpened(IoSession arg0) throws Exception {
47         // TODO Auto-generated method stub
48         System.out.println("服务端登录Session") ;
49     }
50 
51 }
View Code

MinaClient

 1 import java.net.InetSocketAddress;  
 2   
 3 import org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder;  
 4 import org.apache.mina.core.future.ConnectFuture;  
 5 import org.apache.mina.filter.codec.ProtocolCodecFilter;  
 6 import org.apache.mina.filter.codec.serialization.ObjectSerializationCodecFactory;  
 7 import org.apache.mina.transport.socket.nio.NioSocketConnector;  
 8   
 9   
10 public class MinaClient {  
11   
12     public static void main(String[] args) {  
13         // TODO Auto-generated method stub  
14             // 创建Socket  
15              NioSocketConnector connector = new NioSocketConnector();  
16              //设置传输方式  
17              DefaultIoFilterChainBuilder chain = connector.getFilterChain();  
18              ProtocolCodecFilter filter = new ProtocolCodecFilter(new ObjectSerializationCodecFactory());  
19              chain.addLast("objectFilter", filter);  
20              //设置消息处理  
21              connector.setHandler(new MinaClientHanlder());  
22              //超时设置  
23              connector.setConnectTimeoutCheckInterval(30);  
24              //连接  
25              ConnectFuture cf = connector.connect(new InetSocketAddress("localhost", 9999));  
26              cf.awaitUninterruptibly();  
27              cf.getSession().getCloseFuture().awaitUninterruptibly();  
28              connector.dispose();  
29                
30     }  
31   
32 }  
View Code

MinaClientHandler 

 1 import org.apache.mina.core.service.IoHandler;
 2 import org.apache.mina.core.session.IdleStatus;
 3 import org.apache.mina.core.session.IoSession;
 4 
 5 
 6 public class MinaClientHanlder implements IoHandler {
 7 
 8     @Override
 9     public void exceptionCaught(IoSession arg0, Throwable arg1)
10             throws Exception {
11         // TODO Auto-generated method stub
12 
13     }
14 
15     @Override
16     public void messageReceived(IoSession arg0, Object arg1) throws Exception {
17         // TODO Auto-generated method stub
18         System.out.println("客户端接受到了消息") ;
19     }
20 
21     @Override
22     public void messageSent(IoSession arg0, Object arg1) throws Exception {
23         // TODO Auto-generated method stub
24 
25     }
26 
27     @Override
28     public void sessionClosed(IoSession arg0) throws Exception {
29         // TODO Auto-generated method stub
30         System.out.println("客户端关闭Session") ;
31     }
32 
33     @Override
34     public void sessionCreated(IoSession arg0) throws Exception {
35         // TODO Auto-generated method stub
36         System.out.println("客户端创建Session") ;
37     }
38 
39     @Override
40     public void sessionIdle(IoSession arg0, IdleStatus arg1) throws Exception {
41         // TODO Auto-generated method stub
42         System.out.println("客户端空闲Session") ;
43     }
44 
45     @Override
46     public void sessionOpened(IoSession arg0) throws Exception {
47         // TODO Auto-generated method stub
48         System.out.println("客户端登陆Session");  
49         arg0.write("hello world1"); 
50     }
51 
52 }
View Code

 

首先运行MinaServer之后再运行MinaClient,在Console里面可以查看消息。

posted @ 2013-12-19 00:44  っ梦幻泡影  阅读(765)  评论(0编辑  收藏  举报