`

mina官方例子

    博客分类:
  • mina
阅读更多

 

 

 

 

注: mina 使用slf4j作为日志的记录

 

 

 

package org.apache.mina.example.reverser;
21  
22  import java.net.InetSocketAddress;
23  import java.nio.charset.Charset;
24  
25  import org.apache.mina.filter.codec.ProtocolCodecFilter;
26  import org.apache.mina.filter.codec.textline.TextLineCodecFactory;
27  import org.apache.mina.filter.logging.LoggingFilter;
28  import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
29  
30  /**
31   * (<b>Entry point</b>) Reverser server which reverses all text lines from
32   * clients.
33   *
34   * @author <a href="http://mina.apache.org">Apache MINA Project</a>
35   */
36  public class Main {
37      private static final int PORT = 8080;
38  
39      public static void main(String[] args) throws Exception {
40          NioSocketAcceptor acceptor = new NioSocketAcceptor();
41  
42          // Prepare the configuration
43          acceptor.getFilterChain().addLast("logger", new LoggingFilter());
44          acceptor.getFilterChain().addLast(
45                  "codec",
46                  new ProtocolCodecFilter(new TextLineCodecFactory(Charset
47                          .forName("UTF-8"))));
48  
49          // Bind
50          acceptor.setHandler(new ReverseProtocolHandler());
51          acceptor.bind(new InetSocketAddress(PORT));
52  
53          System.out.println("Listening on port " + PORT);
54      }
55  }

 

 

 

 

@Override 覆盖那几个方法,其实不一定用extends 用implement 能列出所有的方法

 

 

 

package org.apache.mina.example.reverser;
21  
22  import org.apache.mina.core.service.IoHandler;
23  import org.apache.mina.core.service.IoHandlerAdapter;
24  import org.apache.mina.core.session.IoSession;
25  
26  /**
27   * {@link IoHandler} implementation of reverser server protocol.
28   *
29   * @author <a href="http://mina.apache.org">Apache MINA Project</a>
30   */
31  public class ReverseProtocolHandler extends IoHandlerAdapter {
32      @Override
33      public void exceptionCaught(IoSession session, Throwable cause) {
34          // Close connection when unexpected exception is caught.
35          session.close(true);
36      }
37  
38      @Override
39      public void messageReceived(IoSession session, Object message) {
40          // Reverse reveiced string
41          String str = message.toString();
42          StringBuilder buf = new StringBuilder(str.length());
43          for (int i = str.length() - 1; i >= 0; i--) {
44              buf.append(str.charAt(i));
45          }
46  
47          // and write it back.
48          session.write(buf.toString());   // 写回,这样可以显示
49      }
50  }

 

 

 

 

 

 

 

 

 

 

 

 

下面是另一个例子 public class Main {

37      private static final int PORT = 8080;
38  
39      public static void main(String[] args) throws Exception {
40          NioSocketAcceptor acceptor = new NioSocketAcceptor();
41  
42          // Prepare the configuration
43          acceptor.getFilterChain().addLast("logger", new LoggingFilter());
44          acceptor.getFilterChain().addLast(
45                  "codec",
46                  new ProtocolCodecFilter(new TextLineCodecFactory(Charset
47                          .forName("UTF-8"))));
48  
49          // Bind
50          acceptor.setHandler(new ReverseProtocolHandler());
51          acceptor.bind(new InetSocketAddress(PORT));
52  
53          System.out.println("Listening on port " + PORT);
54      }
55  }
 

 

 

 public class ReverseProtocolHandler extends IoHandlerAdapter {
32      @Override
33      public void exceptionCaught(IoSession session, Throwable cause) {
34          // Close connection when unexpected exception is caught.
35          session.close(true);
36      }
37  
38      @Override
39      public void messageReceived(IoSession session, Object message) {
40          // Reverse reveiced string
41          String str = message.toString();
42          StringBuilder buf = new StringBuilder(str.length());
43          for (int i = str.length() - 1; i >= 0; i--) {
44              buf.append(str.charAt(i));
45          }
46  
47          // and write it back.
48          session.write(buf.toString());
49      }
50  }
 

 

 

 

 

 

第三个例子   server 端基本都一样

 

 

public class Main {
37      private static final int PORT = 8080;
38  
39      public static void main(String[] args) throws Exception {
40          NioSocketAcceptor acceptor = new NioSocketAcceptor();
41  
42          // Prepare the configuration
43          acceptor.getFilterChain().addLast("logger", new LoggingFilter());
44          acceptor.getFilterChain().addLast(
45                  "codec",
46                  new ProtocolCodecFilter(new TextLineCodecFactory(Charset
47                          .forName("UTF-8"))));
48  
49          // Bind
50          acceptor.setHandler(new ReverseProtocolHandler());
51          acceptor.bind(new InetSocketAddress(PORT));
52  
53          System.out.println("Listening on port " + PORT);
54      }
55  }
 

 

 

 

 public class ReverseProtocolHandler extends IoHandlerAdapter {
32      @Override
33      public void exceptionCaught(IoSession session, Throwable cause) {
34          // Close connection when unexpected exception is caught.
35          session.close(true);
36      }
37  
38      @Override
39      public void messageReceived(IoSession session, Object message) {
40          // Reverse reveiced string
41          String str = message.toString();
42          StringBuilder buf = new StringBuilder(str.length());
43          for (int i = str.length() - 1; i >= 0; i--) {
44              buf.append(str.charAt(i));
45          }
46  
47          // and write it back.
48          session.write(buf.toString());
49      }
50  }
 

 

 

 

 

 

分享到:
评论

相关推荐

    Mina官方例子所有jar包

    包含了官方例子中所有相关的jar包:log4j, mina-core, mina-integration-jmx, mina-statemachine, org.springframework.context, slf4j-api, slf4j-log4j12等

    apache-mina例子

    这个例子是关于如何使用Apache Mina实现一个简单的服务端和客户端通信的示例。在这个案例中,`MinaTimeServer`是服务端程序,它负责监听客户端的连接请求,并发送时间信息;而`MinaClient`则是客户端程序,它连接到...

    Mina官网例子之时间服务器

    **Mina官网例子之时间服务器** Apache Mina(Minimum Asynchronous Network)是一个高度可扩展的网络通信框架,它为各种协议提供了低级别的基础结构,包括TCP/IP和UDP/IP。Mina的目标是简化网络编程,使其变得高效...

    mina通讯例子

    这个"mina通讯例子"展示了如何利用MINA库来实现客户端与服务器之间的对象通信。 在MINA中,核心概念包括`Session`、`Filter`和`Handler`。`Session`代表了网络连接,它提供了读写数据的方法;`Filter`是数据处理链...

    mina服务端例子

    在这个“Mina服务端例子”中,我们主要探讨的是如何使用Mina框架来实现一个基于Socket的非阻塞I/O(NIO)服务端。 1. **Mina框架介绍**: Mina提供了事件驱动和异步处理模型,使得开发者可以专注于业务逻辑,而...

    mina使用例子

    通过这个"mina使用例子",你可以深入理解如何使用Mina来构建一个网络应用,从创建服务端、配置过滤器链,到处理客户端的连接和数据交换,以及如何进行性能优化和异常处理。这个例子将为你提供实践Mina框架的第一手...

    mina源码+例子mina-2.0.0-M6.zip

    3. **编写简单的应用**:从例子入手,创建一个简单的MINA服务器和客户端,理解它们之间的通信机制。 4. **实现自定义过滤器**:根据需求,编写自定义的过滤器,以实现特定的数据处理功能。 5. **性能调优**:了解...

    mina入门例子

    本入门例子将带你了解如何使用MINA进行基本的网络通信应用开发。 首先,MINA的核心概念包括`Session`、`Filter`和`Handler`。`Session`代表一个网络连接,它是数据传输的通道;`Filter`是处理`Session`中数据的...

    Mina例子包含与spring整合

    在这个"Mina例子包含与Spring整合"的项目中,我们将探讨如何将MINA与流行的Java企业级框架Spring进行集成。 1. **Apache MINA**:MINA是基于Java NIO(非阻塞I/O)的网络应用框架,用于构建高性能、跨平台的服务器...

    MINA源码与例子

    Apache MINA(Multipurpose Infrastructure for Network Applications)是一个高性能、异步事件驱动的网络应用程序框架,主要用于简化开发高质量的网络服务。MINA的目标是为开发者提供一个简单易用但功能强大的库,...

    NIO_MINA学习例子_源代码

    在“NIO_MINA学习例子_源代码”中,你可以找到以下学习要点: 1. **NIO基础**:研究源代码中的通道和缓冲区的使用,理解如何通过Channel.read()和Channel.write()进行数据传输,以及如何使用Selector注册和监听通道...

    mina权威性能测试例子

    这个"mina权威性能测试例子"是针对Apache Mina的一个实际性能测试案例,旨在展示在特定环境下Mina如何处理大量并发连接。在这个测试中,四台客户端机器同时对服务器进行压力测试,结果显示服务器可以轻松地处理一万...

    mina消息推送例子

    在这个“mina消息推送例子”中,我们将深入探讨Mina如何实现消息推送,并结合Spring框架进行集成。 首先,Apache Mina提供了一个异步事件驱动的网络应用编程接口(API),它简化了TCP/IP和UDP协议的处理,如HTTP、...

    mina客户端例子

    在这个"mina客户端例子"中,我们将探讨如何利用MINA构建一个简单的客户端,实现基于NIO(Non-blocking I/O)的游戏开发和即时通讯工具。 首先,让我们了解NIO。在Java中,传统的I/O模型是阻塞的,这意味着当进行...

    mina即时聊天demo

    **mina即时聊天demo** Mina(Java Multithreaded Application Network Architecture)是一个开源的网络通信框架,由Apache软件基金会开发并维护。它提供了一个高度可扩展的、高性能的、事件驱动的I/O服务架构,广泛...

    Mina实现RPC的例子

    这个例子中的链接(http://blog.csdn.net/stevexk/archive/2008/07/23/2697907.aspx)提供了更详细的实现细节,包括具体的编码和解码逻辑,以及如何在Mina的过滤器和处理器中处理RPC请求。如果你需要深入学习,建议...

    初学mina的例子!

    NULL 博文链接:https://tianting-wx.iteye.com/blog/265080

    mina 服务器开发例子

    《Mina 服务器开发实例详解》 Mina(Minimum Asynchronous Network)是一个开源的Java框架,主要用于构建高性能、...通过理解并实践上述例子,你将能够更好地掌握Mina,并在实际项目中运用它来构建高性能的网络应用。

    Mina自定义协议通信的示例

    在"Mina_MyProtocol"这个例子中,你可能会看到以下文件结构: - `MyProtocolEncoder.java`:实现了自定义编码器,将你的业务对象转化为符合自定义协议的数据流。 - `MyProtocolDecoder.java`:实现了自定义解码器,...

    ApacheMina典型例子分析参考.pdf

    这些改进提升了效率,比如基于Apache APR的基础I/O组件,官方测试显示,相对于Sun NIO,APR的性能可提高约10%。因此,2.0.x版本对于开发者来说非常值得期待。 异步I/O模型是Mina的核心。在Mina中,有两种主要的异步...

Global site tag (gtag.js) - Google Analytics