in = new BufferedReader(new InputStreamReader(socket.getInputStream()));\r
\r
// Start the thread to listen for incoming messages\r
-// logger.info("CLIENT: connection successful to port "\r
-// + socket.getPort() + " via port " + socket.getLocalPort());\r
+ logger.info("CLIENT: connection successful to port "\r
+ + socket.getPort() + " via port " + socket.getLocalPort());\r
start();\r
\r
return true;\r
}\r
catch (Exception e)\r
{\r
- //logger.info("CLIENT: connection failed: " + e);\r
+ logger.info("CLIENT: connection failed: " + e);\r
return false;\r
}\r
}\r
terminate();\r
}\r
}\r
- /**\r
- * state of server thread - running or not running\r
- */\r
- private boolean running=false;\r
- /**\r
- * condition for server thread to stop\r
- */\r
- private boolean enabled=true;\r
- public void haltEndpoint() {\r
- // TODO: FIX THIS METHOD\r
- if (!running || !enabled) {\r
- logger.debug("PickEndpoint is not running or already requested to halt.");\r
- return;\r
- }\r
- logger.debug("Disabling pick endpoint.");\r
- enabled=false;\r
- terminate();\r
- while (running) {\r
- try {\r
- Thread.sleep(1);\r
- } catch (Exception e) {\r
- }\r
- }\r
- logger.debug("Pick endpoint has stopped.");\r
- }\r
-\r
+ \r
// void receive() (threaded)\r
public void run()\r
{\r
- enabled=true;\r
- running=true;\r
try\r
{\r
- while (enabled)\r
+ while (true)\r
{\r
String str = in.readLine(); \r
//logger.info("CLIENT: recv " + str + " from " + rPort);\r
// TODO: Spawn this off into the GUI Event-Dispatch thread...\r
\r
// Convert the string back into something API friendly\r
- if (str!=null) {\r
Message message = strToMessage(str);\r
\r
// Ignore corrupted or unknown message types\r
if (message != null) \r
manager.processMessage(this, message);\r
- }\r
}\r
}\r
catch (Exception e)\r
{\r
- // Means the other end of the connection has (probably) died\r
- logger.debug("Exception in receiver loop: "+e.getMessage());\r
- }\r
- // terminate this endpoint (if this is server side)\r
- //logger.info("CLIENT: read failed: " + e);\r
- \r
- terminate();\r
- \r
- running=false;\r
+ // Means the other end of the connection has (probably died) so we need\r
+ // terminate this endpoint (if this is server side)\r
+ //logger.info("CLIENT: read failed: " + e);\r
+ \r
+ terminate();\r
+ }\r
}\r
\r
- private void terminate()\r
+ void terminate()\r
{\r
- try { \r
- if (socket.isConnected())\r
- socket.close(); \r
- }\r
+ try { socket.close(); }\r
catch (IOException e) {}\r
\r
//logger.info("CLIENT: closing connection to port " + socket.getPort());\r
\r
private Message strToMessage(String str)\r
{\r
- // TODO: generalize message class \r
try\r
{\r
if (str.startsWith("CUSTOM"))\r