MyServerSocket.java

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

public class MyServerSocket extends Thread {

private Socket sock; private Server owner; private long  lastTime;

// constructor public MyServerSocket(Socket s, Server o) { sock = s;        owner = o;        lastTime = System.currentTimeMillis; }

// run that is started by the start call to JVM public void run {

sendMessage("Welcome to this server."                   + " Log off with 'logout'.");

sendMessage("Get the list of connected users"                   + " with command 'wwhhoo'");

try { BufferedReader bis = new BufferedReader(                                 new InputStreamReader( sock.getInputStream));

String line; while ((line = bis.readLine) != null) {

lastTime = System.currentTimeMillis;

if (line.toLowerCase.trim.                       equals("logout")) {

break; // out from the while loop

} else if (line.length > 0) { // skip empty lines owner.handleMessage(line, this); }           }

sock.close;

} catch (Exception e) { }

owner.loggedOf(this); }

public String getIP { return (sock.getInetAddress.getHostAddress               + " at "                + sock.getInetAddress.getHostName); }

public void sendMessage(String txt) {

try { PrintWriter pws = new PrintWriter(                               sock.getOutputStream,                                true);

pws.println(txt); } catch (IOException e) { } }

public boolean isInactive(long time) { if (lastTime < time) { /* will cause an automatic logout in this * object's run method */ try { sock.close; } catch (IOException e) {} return true; } else { return false; }   } } 