Mina框架HelloWorld入門


首先推薦幾篇Mina框架的好文章:

Mina框架研究(1)

Mina框架研究(2)

Mina框架研究(3)

 

環境准備:

  1. 首先到官方網站下載最新的 MINA 版本,地址是:http://mina.apache.org。下載之前先介紹一下 MINA 的兩個版本:1.0.x 適合運行環境為 JDK1.4,1.1.x 適合 JDK1.5 的版本,兩者的編譯環境都需要 JDK1.5。JDK1.5 已經是非常普遍了,本文中使用 1.1.5 版本的 MINA,編譯和運行所需的文件是 mina-core-1.1.5.jar。
  2. 下載 MINA 的依賴包 slf4j。MINA 使用此項目作為日志信息的輸出,而 MINA 本身並不附帶此項目包,請到http://www.slf4j.org/download.html 地址下載 slf4j 包,slf4j 項目解壓后有很多的文件,本例中只需要其中的 slf4j-api-1.4.3.jar 和 slf4j-simple-1.4.3.jar 這兩個 jar 文件。如果沒有這兩個文件就會導致啟動例子程序的時候報 org/slf4j/LoggerFactory 類沒找到的錯誤。
  3. 當然要求機器上必須裝有 1.5 或者更新版本的 JDK。
  4. 最好你應該選擇一個順手的 Java 開發環境例如 Eclipse 或者 NetBeans 之類的,可以更方便的編碼和調試,雖然我們的最低要求只是一個簡單的文本編輯器而已。

 

  

Mina第一個HelloWorld程序:

服務端程序:

Minaserver.java: 

 1 public class MinaServer {
 2     private IoAcceptor ioAcceptor;
 3     
 4     public MinaServer(int port)
 5     {
 6         ioAcceptor = new NioSocketAcceptor();
 7         try {
 8             //設置處理器
 9             ioAcceptor.setHandler(new MyHandler());
10             //綁定端口
11             ioAcceptor.bind(new InetSocketAddress(port));
12             //規定協議,設定過濾,這里用TextLineCodecFactory文本協議
13             ioAcceptor.getFilterChain().addLast("test", new ProtocolCodecFilter(new TextLineCodecFactory()));
14         } catch (IOException e) {
15             e.printStackTrace();
16         }
17     }
18 }

 MyHandler.java:  (服務端接收消息后的業務邏輯處理)

1 public class MyHandler extends IoHandlerAdapter {
2     /**接收到信息后進行邏輯處理*/
3     @Override
4     public void messageReceived(IoSession session, Object message)
5             throws Exception {
6         String getmessage = message.toString();
7         System.out.println(getmessage);
8     }
9 }

 

客戶端程序:

MinaClient.java:

 1 public class MinaClient {
 2     private IoConnector ioConnector;
 3     
 4     public MinaClient(String host, int port)
 5     {
 6         ioConnector = new NioSocketConnector();
 7         //過濾信息,封裝成文本格式輸出
 8         ioConnector.getFilterChain().addLast("test", new ProtocolCodecFilter(new TextLineCodecFactory()));
 9         
10         ioConnector.setHandler(new ClientHandler("Hello world!"));
11         ioConnector.connect(new InetSocketAddress(host, port));
12     }
13 }

ClientHandler.java:

 1 public class ClientHandler extends IoHandlerAdapter {
 2     //發送給服務端的消息
 3     private String sendToServer;
 4     
 5     public ClientHandler(String words)
 6     {
 7         sendToServer = words;
 8     }
 9     
10     @Override
11     public void sessionOpened(IoSession session) throws Exception {
12         session.write(sendToServer);
13     }
14 }

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM