ServiceSkeleton.java

  1. package org.drip.zen.grid;

  2. /*
  3.  * 1) Server Class Abstraction Purpose (notion of a State Machine)
  4.  * 2) Port Number Field / Instance Field Conventions
  5.  * 3) Constructor
  6.  * 4) Coding Conventions
  7.  * 5) "final" Keyword
  8.  * 6) Full Package Names
  9.  * 7) Exception's - Introduction and Usage
  10.  * 8) Class Instance Member Access
  11.  */

  12. public class ServiceSkeleton {
  13.     private int _iListenerPort = -1;
  14.     private java.net.ServerSocket _ssListener = null;

  15.     public ServiceSkeleton (
  16.         final int iListenerPort)
  17.         throws java.lang.Exception
  18.     {
  19.         _ssListener = new java.net.ServerSocket (_iListenerPort = iListenerPort);
  20.     }

  21.     public int listenerPort()
  22.     {
  23.         return _iListenerPort;
  24.     }

  25.     public boolean processRequest()
  26.     {
  27.         try {
  28.             java.net.Socket s = _ssListener.accept();

  29.             System.out.println ("[Server] => Received a Connection from Client " + s);

  30.             java.io.InputStream inputStream = s.getInputStream();

  31.             java.io.InputStreamReader inputReader = new java.io.InputStreamReader (inputStream);

  32.             java.io.BufferedReader bufferedReader = new java.io.BufferedReader (inputReader);

  33.             java.lang.String request = bufferedReader.readLine();

  34.             System.out.println ("[Server] => " + request);

  35.             java.io.OutputStream outputStream = s.getOutputStream();

  36.             java.io.PrintWriter pw = new java.io.PrintWriter (outputStream, true);

  37.             pw.write ("I am OK - looks like our sockets talked to each other\n");

  38.             pw.flush();

  39.             return true;
  40.         } catch (java.lang.Exception e) {
  41.             e.printStackTrace();
  42.         }

  43.         return false;
  44.     }

  45.     public static void main (
  46.         final java.lang.String[] astrInput)
  47.         throws java.lang.Exception
  48.     {
  49.         int listenerPort = 9090;

  50.         ServiceSkeleton ss = new ServiceSkeleton (listenerPort);

  51.         while (true)
  52.             ss.processRequest();
  53.     }
  54. }