home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / inprise / JSAMPLES.Z / HelloThread.java < prev    next >
Text File  |  1998-05-08  |  4KB  |  119 lines

  1. /*
  2.  * Copyright (c) 1997-1998 Borland International, Inc. All Rights Reserved.
  3.  * 
  4.  * This SOURCE CODE FILE, which has been provided by Borland as part
  5.  * of a Borland product for use ONLY by licensed users of the product,
  6.  * includes CONFIDENTIAL and PROPRIETARY information of Borland.  
  7.  *
  8.  * USE OF THIS SOFTWARE IS GOVERNED BY THE TERMS AND CONDITIONS 
  9.  * OF THE LICENSE STATEMENT AND LIMITED WARRANTY FURNISHED WITH
  10.  * THE PRODUCT.
  11.  *
  12.  * IN PARTICULAR, YOU WILL INDEMNIFY AND HOLD BORLAND, ITS RELATED
  13.  * COMPANIES AND ITS SUPPLIERS, HARMLESS FROM AND AGAINST ANY CLAIMS
  14.  * OR LIABILITIES ARISING OUT OF THE USE, REPRODUCTION, OR DISTRIBUTION
  15.  * OF YOUR PROGRAMS, INCLUDING ANY CLAIMS OR LIABILITIES ARISING OUT OF
  16.  * OR RESULTING FROM THE USE, MODIFICATION, OR DISTRIBUTION OF PROGRAMS
  17.  * OR FILES CREATED FROM, BASED ON, AND/OR DERIVED FROM THIS SOURCE
  18.  * CODE FILE.
  19.  */
  20. package borland.samples.apps.chess.server;
  21.  
  22. import java.net.*;
  23. import java.io.*;
  24.  
  25. public class HelloThread extends Thread
  26. {
  27.   ServerSocket serverSocket = null;
  28.  
  29.   HelloThread() {
  30.     ChessServer.availablePort = new boolean[ChessServer.maxConnections];
  31.     for (int i=0;i<ChessServer.maxConnections;i++)
  32.       ChessServer.availablePort[i] = true ;
  33.     //System.out.println("Hello");
  34.     try {
  35.       serverSocket = new ServerSocket(ChessServer.basePort - 1);
  36.       System.out.println("Hello1");
  37.     }
  38.     catch (IOException e) {
  39.       System.out.println("Could not listen on port: " + 4444 + ", " + e);
  40.       System.exit(1);
  41.     }
  42.   }
  43.  
  44.   public void run() {
  45.     //System.out.println("HelloThread: running");
  46.     if (serverSocket == null)
  47.       return;
  48.     try {
  49.       System.out.println("Address of the Server :" + InetAddress.getLocalHost().toString()) ;
  50.     }
  51.     catch (Exception e) {
  52.       System.out.println("HelloThread: " + e);
  53.       System.exit(1);
  54.     }
  55.     while (true) {
  56.       System.out.println("HelloThread: Waiting for someone to talk to me: " );
  57.       Socket clientSocket = null;
  58.       try {
  59.         clientSocket = serverSocket.accept();
  60.       }
  61.       catch (IOException e) {
  62.         System.out.println("Accept failed: " + e);
  63.         System.exit(1);
  64.       }
  65.  
  66.       try {
  67.         System.out.println("HelloThread: set up data streams");
  68.  
  69.         DataInputStream is = new DataInputStream(
  70.                              new BufferedInputStream(clientSocket.getInputStream()));
  71.         PrintWriter os = new PrintWriter(clientSocket.getOutputStream());
  72.             //             new BufferedOutputStream(clientSocket.getOutputStream(), 1024), false);
  73.         InputStreamReader isr  = new InputStreamReader(is);
  74.         BufferedReader br = new BufferedReader(isr);
  75.         String inputLine, outputLine;
  76.         String name;
  77.         //System.out.println("HelloThread: Someone to talk to! " );
  78.  
  79.         if ((inputLine = br.readLine()) != null) {
  80.           System.out.println("Hello Thread: Received:" + inputLine);
  81.           outputLine = "";
  82.           //someone wants to talk ; tell them the number of their
  83.           //private port;
  84.           if (inputLine.startsWith("Hello")) {
  85.             int portNumber = ChessServer.getPortNumber();
  86.             new SendThread(portNumber).start();
  87.             outputLine = String.valueOf(portNumber);
  88.             System.out.println("Assign " + clientSocket.getInetAddress().toString() + " to port " + outputLine) ;
  89.  
  90.           }
  91.           os.println(outputLine);
  92.           os.flush();
  93.         }
  94.         os.close();
  95.         is.close();
  96.         clientSocket.close();
  97.       }
  98.       catch (IOException e) {
  99.         e.printStackTrace();
  100.       }
  101.       catch (Exception e) {
  102.         System.out.println("HelloThread:" + e);
  103.       }
  104.     }
  105.   }
  106.  
  107.   protected void finalize() {
  108.     if (serverSocket != null) {
  109.       try {
  110.         serverSocket.close();
  111.       }
  112.       catch (IOException e) {
  113.         e.printStackTrace();
  114.       }
  115.       serverSocket = null;
  116.     }
  117.   }
  118. }
  119.