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.common.ConnectFuture;
25 import org.apache.mina.common.IoConnector;
26 import org.apache.mina.common.IoSession;
27 import org.apache.mina.filter.ThreadPoolFilter;
28 import org.apache.mina.transport.socket.nio.SocketConnector;
29
30 /***
31 * (<strong>Entry Point</strong>) Starts SumUp client.
32 *
33 * @author The Apache Directory Project
34 * @version $Rev: 355016 $, $Date: 2005-12-08 16:00:30 +0900 (Thu, 08 Dec 2005) $
35 */
36 public class Client
37 {
38 private static final String HOSTNAME = "localhost";
39 private static final int PORT = 8080;
40 private static final int CONNECT_TIMEOUT = 30;
41
42 private static final boolean USE_CUSTOM_CODEC = true;
43
44 public static void main( String[] args ) throws Throwable
45 {
46 if( args.length == 0 )
47 {
48 System.out.println( "Please specify the list of any integers" );
49 return;
50 }
51
52
53 int[] values = new int[ args.length ];
54 for( int i = 0; i < args.length; i++ )
55 {
56 values[ i ] = Integer.parseInt( args[ i ] );
57 }
58
59
60
61
62 ThreadPoolFilter ioThreadPoolFilter = new ThreadPoolFilter();
63 ThreadPoolFilter protocolThreadPoolFilter = new ThreadPoolFilter();
64 IoConnector connector = new SocketConnector();
65 connector.getFilterChain().addFirst(
66 "ioThreadPool", ioThreadPoolFilter );
67 connector.getFilterChain().addLast(
68 "protocolThreadPool", protocolThreadPoolFilter );
69
70
71 connector.setConnectTimeout( CONNECT_TIMEOUT );
72
73 IoSession session;
74 for( ;; )
75 {
76 try
77 {
78 ConnectFuture future = connector.connect(
79 new InetSocketAddress( HOSTNAME, PORT ),
80 new ClientSessionHandler( USE_CUSTOM_CODEC, values ) );
81
82 future.join();
83 session = future.getSession();
84 break;
85 }
86 catch( IOException e )
87 {
88 System.err.println( "Failed to connect." );
89 e.printStackTrace();
90 Thread.sleep( 5000 );
91 }
92 }
93
94
95 session.getCloseFuture().join();
96 }
97 }