1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.mina.example.echoserver;
21
22 import java.net.InetSocketAddress;
23
24 import org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder;
25 import org.apache.mina.example.echoserver.ssl.BogusSslContextFactory;
26 import org.apache.mina.filter.compression.CompressionFilter;
27 import org.apache.mina.filter.ssl.SslFilter;
28 import org.apache.mina.transport.socket.SocketAcceptor;
29 import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
30
31
32
33
34
35
36 public class Main {
37
38 private static final int PORT = 8080;
39
40
41 private static final boolean USE_SSL = false;
42
43 public static void main(String[] args) throws Exception {
44 SocketAcceptor acceptor = new NioSocketAcceptor();
45 acceptor.setReuseAddress( true );
46 DefaultIoFilterChainBuilder chain = acceptor.getFilterChain();
47
48
49 if (USE_SSL) {
50 addSSLSupport(chain);
51 }
52
53
54 chain.addLast( "Compressor", new CompressionFilter() );
55
56
57 acceptor.setHandler(new EchoProtocolHandler());
58 acceptor.bind(new InetSocketAddress(PORT));
59
60 System.out.println("Listening on port " + PORT);
61
62 for (;;) {
63 System.out.println("R: " + acceptor.getStatistics().getReadBytesThroughput() +
64 ", W: " + acceptor.getStatistics().getWrittenBytesThroughput());
65 Thread.sleep(3000);
66 }
67 }
68
69 private static void addSSLSupport(DefaultIoFilterChainBuilder chain)
70 throws Exception {
71 SslFilterilter.html#SslFilter">SslFilter sslFilter = new SslFilter(BogusSslContextFactory
72 .getInstance(true));
73 chain.addLast("sslFilter", sslFilter);
74 System.out.println("SSL ON");
75 }
76 }