public void run(){ buddyList = new ArrayList (10); outputQueue = new ArrayList (10); inputQueue = new ArrayList (10); msgEncoder = new MSGEncoder(this); decoder = new MSGDecoder(this); socket = connect(); try{ reader = new Reader(this , socket.getInputStream()); new Thread((Runnable)reader).start(); writer = new Writer( outputQueue , socket.getOutputStream()); new Thread((Runnable)writer).start(); }catch(Exception e){e.printStackTrace(); System.exit(1);} while(run){ /* HANDEL MSGS FROM SERVER */ handleServerMessages(); /* RELAY MSGS TO LISTENERS */ relayToListeners(); /* HANDEL MSGS FROM CLIENT */ handleClientMsgs(); try{Thread.sleep(100);}catch(Exception e){ e.printStackTrace();} } }