First check-in of the picking api.
[vamsas.git] / src / org / vamsas / client / picking / PickEndPoint.java
1 package org.vamsas.client.picking;\r
2 \r
3 import java.io.*;\r
4 import java.net.*;\r
5 \r
6 class PickEndPoint extends Thread\r
7 {\r
8         private Socket socket;\r
9         private BufferedWriter os;\r
10         private BufferedReader in;\r
11         \r
12         // Constructs a new client connection (client->server)\r
13         PickEndPoint()\r
14                 throws Exception\r
15         {\r
16                 // Attempt to connect...\r
17                 // If we fail, wrapper has to attempt to make server instead??\r
18                 // Or keep trying until a server exists\r
19                 socket = new Socket(InetAddress.getLocalHost(), PickServer.PORT);\r
20                 \r
21                 createStreams();\r
22         }\r
23         \r
24         // Constructs a new client based on an existing connection (server->client)\r
25         PickEndPoint(Socket s)\r
26                 throws IOException\r
27         {\r
28                 socket = s;\r
29                 createStreams();\r
30         }\r
31         \r
32         private void createStreams()\r
33                 throws IOException\r
34         {\r
35                 os = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));\r
36                 \r
37                 in = new BufferedReader(new InputStreamReader(socket.getInputStream()));\r
38                 \r
39                 start();\r
40         }\r
41         \r
42         void send()\r
43         {\r
44                 try\r
45                 {\r
46                         System.out.println("CLIENT: sending message...");\r
47                         os.write("test message: " + (System.currentTimeMillis()));\r
48                         \r
49                         // We use a newline to terminate the message\r
50                         os.newLine();\r
51                         os.flush();\r
52                         System.out.println("CLIENT: message sent");\r
53                 }\r
54                 catch (Exception e)\r
55                 {\r
56                         System.out.println(e);\r
57                 }\r
58         }\r
59         \r
60         public void run()\r
61         {\r
62                 try {\r
63                 while (true)\r
64                 {\r
65                         String str = in.readLine();\r
66                         \r
67                         System.out.println("CLIENT: READ: " + str);\r
68                 }\r
69         }\r
70         catch (Exception e)\r
71         {\r
72                 System.out.println("CLIENT: read fail: " + e);\r
73                 // Means the other end of the connection has (probably died) so we need\r
74                 // terminate this endpoint (if this is server side)\r
75         }\r
76         }\r
77 }