home *** CD-ROM | disk | FTP | other *** search
/ BUG 15 / BUGCD1998_06.ISO / aplic / jbuilder / jsamples.z / HelloThread.java < prev    next >
Text File  |  1997-07-03  |  3KB  |  100 lines

  1. package borland.samples.apps.chess.server;
  2.  
  3. import java.net.*;
  4. import java.io.*;
  5.  
  6. public class HelloThread extends Thread
  7. {
  8.   ServerSocket serverSocket = null;
  9.  
  10.   HelloThread() {
  11.     ChessServer.availablePort = new boolean[ChessServer.maxConnections];
  12.     for (int i=0;i<ChessServer.maxConnections;i++)
  13.       ChessServer.availablePort[i] = true ;
  14.     //System.out.println("Hello");
  15.     try {
  16.       serverSocket = new ServerSocket(ChessServer.basePort - 1);
  17.       System.out.println("Hello1");
  18.     }
  19.     catch (IOException e) {
  20.       System.out.println("Could not listen on port: " + 4444 + ", " + e);
  21.       System.exit(1);
  22.     }
  23.   }
  24.  
  25.   public void run() {
  26.     //System.out.println("HelloThread: running");
  27.     if (serverSocket == null)
  28.       return;
  29.     try {
  30.       System.out.println("Address of the Server :" + InetAddress.getLocalHost().toString()) ;
  31.     }
  32.     catch (Exception e) {
  33.       System.out.println("HelloThread: " + e);
  34.       System.exit(1);
  35.     }
  36.     while (true) {
  37.       System.out.println("HelloThread: Waiting for someone to talk to me: " );
  38.       Socket clientSocket = null;
  39.       try {
  40.         clientSocket = serverSocket.accept();
  41.       }
  42.       catch (IOException e) {
  43.         System.out.println("Accept failed: " + e);
  44.         System.exit(1);
  45.       }
  46.  
  47.       try {
  48.         System.out.println("HelloThread: set up data streams");
  49.  
  50.         DataInputStream is = new DataInputStream(
  51.                              new BufferedInputStream(clientSocket.getInputStream()));
  52.         PrintWriter os = new PrintWriter(clientSocket.getOutputStream());
  53.             //             new BufferedOutputStream(clientSocket.getOutputStream(), 1024), false);
  54.         InputStreamReader isr  = new InputStreamReader(is);
  55.         BufferedReader br = new BufferedReader(isr);
  56.         String inputLine, outputLine;
  57.         String name;
  58.         //System.out.println("HelloThread: Someone to talk to! " );
  59.  
  60.         if ((inputLine = br.readLine()) != null) {
  61.           System.out.println("Hello Thread: Received:" + inputLine);
  62.           outputLine = "";
  63.           //someone wants to talk ; tell them the number of their
  64.           //private port;
  65.           if (inputLine.startsWith("Hello")) {
  66.             int portNumber = ChessServer.getPortNumber();
  67.             new SendThread(portNumber).start();
  68.             outputLine = String.valueOf(portNumber);
  69.             System.out.println("Assign " + clientSocket.getInetAddress().toString() + " to port " + outputLine) ;
  70.  
  71.           }
  72.           os.println(outputLine);
  73.           os.flush();
  74.         }
  75.         os.close();
  76.         is.close();
  77.         clientSocket.close();
  78.       }
  79.       catch (IOException e) {
  80.         e.printStackTrace();
  81.       }
  82.       catch (Exception e) {
  83.         System.out.println("HelloThread:" + e);
  84.       }
  85.     }
  86.   }
  87.  
  88.   protected void finalize() {
  89.     if (serverSocket != null) {
  90.       try {
  91.         serverSocket.close();
  92.       }
  93.       catch (IOException e) {
  94.         e.printStackTrace();
  95.       }
  96.       serverSocket = null;
  97.     }
  98.   }
  99. }
  100.