1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.mina.examples.sumup;
20
21 import java.io.IOException;
22 import java.net.InetSocketAddress;
23
24 import org.apache.mina.io.filter.IoThreadPoolFilter;
25 import org.apache.mina.io.socket.SocketConnector;
26 import org.apache.mina.protocol.ProtocolProvider;
27 import org.apache.mina.protocol.ProtocolSession;
28 import org.apache.mina.protocol.filter.ProtocolThreadPoolFilter;
29 import org.apache.mina.protocol.io.IoProtocolConnector;
30
31 /***
32 * (<strong>Entry Point</strong>) Starts SumUp client.
33 *
34 * @author The Apache Directory Project
35 * @version $Rev: 264677 $, $Date: 2005-08-30 11:44:35 +0900 $
36 */
37 public class Client
38 {
39 private static final String HOSTNAME = "localhost";
40 private static final int PORT = 8080;
41 private static final int CONNECT_TIMEOUT = 30;
42
43 public static void main( String[] args ) throws Throwable
44 {
45 if( args.length == 0 )
46 {
47 System.out.println( "Please specify the list of any integers" );
48 return;
49 }
50
51
52 int[] values = new int[ args.length ];
53 for( int i = 0; i < args.length; i++ )
54 {
55 values[ i ] = Integer.parseInt( args[ i ] );
56 }
57
58
59
60
61 IoThreadPoolFilter ioThreadPoolFilter = new IoThreadPoolFilter();
62 ProtocolThreadPoolFilter protocolThreadPoolFilter = new ProtocolThreadPoolFilter();
63
64
65 ioThreadPoolFilter.start();
66 protocolThreadPoolFilter.start();
67
68 IoProtocolConnector connector = new IoProtocolConnector(
69 new SocketConnector() );
70 connector.getIoConnector().getFilterChain().addFirst( "threadPool",
71 ioThreadPoolFilter );
72 connector.getFilterChain().addFirst( "threadPool",
73 protocolThreadPoolFilter );
74
75 ProtocolProvider protocolProvider = new ClientProtocolProvider( values );
76 ProtocolSession session;
77 for( ;; )
78 {
79 try
80 {
81 session = connector.connect( new InetSocketAddress( HOSTNAME,
82 PORT ), CONNECT_TIMEOUT, protocolProvider );
83 break;
84 }
85 catch( IOException e )
86 {
87 System.err.println( "Failed to connect." );
88 e.printStackTrace();
89 Thread.sleep( 5000 );
90 }
91 }
92
93
94 while( session.isConnected() )
95 {
96 Thread.sleep( 100 );
97 }
98
99 ioThreadPoolFilter.stop();
100 protocolThreadPoolFilter.stop();
101 }
102 }