MyChatSocket.java

 import java.net.*; import java.io.*;

public class MyChatSocket extends Socket implements Runnable { protected ChatApplet    owner; protected BufferedReader bis;

public MyChatSocket(ChatApplet o, String address,                   int port) throws java.io.IOException {

super(address, port);

owner = o;       bis = new BufferedReader(                new InputStreamReader( this.getInputStream));

new MyTimer(this);

Thread thread = new Thread(this); thread.start; }

public void run { String        line; while (owner.isConnected) { try { bis.readLine; // skip first line while ((line = bis.readLine) != null) { owner.setMessage(line); }           } catch (IOException e) { if (owner.isConnected) { owner.setMessage(                       "Error in socket's run method."); owner.setMessage(e.getMessage); owner.disconnect; } else ; // probably a disconnect occurred }       }    }

class MyTimer extends Thread { public MyTimer(MyChatSocket s) { super(s); this.start; }

/* Sends an empty message every 10th minute to        * stay on-line. Recall that the server throws * you out if you are too quiet. */       public void run { try { while (true) { this.sleep(600000L); owner.sendMessage(""); }           } catch (Exception e) {} }   } } 