• 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 }
    一颗平常心,踏踏实实,平静对待一切
  • 相关阅读:
    SparseArray<E>详解
    Android项目实战(十二):解决OOM的一种偷懒又有效的办法
    浅谈GridLayout(网格布局)
    Android项目实战(十一):moveTaskToBack(boolean ) 方法的使用
    Android Studio 项目代码全部消失--出现原因及解决方法
    Installation failed with message INSTALL_FAILED_UID_CHANGED.--APK安装失败解决方法
    Android项目实战(三十):Fresco加载gif图片并播放
    Android项目实战(十):自定义倒计时的TextView
    坚持一段时间了,达不到原有的目的,就应该放弃了——考研每日总结
    191006
  • 原文地址:https://www.cnblogs.com/hanyuan/p/2956895.html
Copyright © 2020-2023  润新知