`

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  }
 

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics