1 package org.myoodb.core; 25 26 import java.io.*; 27 import java.net.*; 28 29 public abstract class AbstractClient extends AbstractSocket implements Runnable 30 { 31 private boolean m_stop; 32 private Thread m_thread; 33 private AbstractServer m_server; 34 35 public AbstractClient(Socket socket, AbstractServer server) throws IOException 36 { 37 super(socket); 38 m_stop = false; 39 m_server = server; 40 m_thread = server.newThread(this); 41 } 42 43 public void run() 44 { 45 try 46 { 47 while (m_stop == false) 48 { 49 m_server.processWork(this, receive(-1)); 50 } 51 52 super.close(); 53 } 54 catch (Exception e) 55 { 56 m_server.handleException(this, e); 57 } 58 } 59 60 public synchronized void listen() 61 { 62 if (m_thread.isAlive() == false) 63 { 64 m_thread.start(); 65 } 66 } 67 68 public synchronized void close() throws IOException 69 { 70 m_stop = true; 71 super.close(); 72 } 73 74 public AbstractServer getServer() 75 { 76 return m_server; 77 } 78 79 public Thread getThread() 80 { 81 return m_thread; 82 } 83 } 84 | Popular Tags |