ServiceSkeleton.java
package org.drip.zen.grid;
/*
* 1) Server Class Abstraction Purpose (notion of a State Machine)
* 2) Port Number Field / Instance Field Conventions
* 3) Constructor
* 4) Coding Conventions
* 5) "final" Keyword
* 6) Full Package Names
* 7) Exception's - Introduction and Usage
* 8) Class Instance Member Access
*/
public class ServiceSkeleton {
private int _iListenerPort = -1;
private java.net.ServerSocket _ssListener = null;
public ServiceSkeleton (
final int iListenerPort)
throws java.lang.Exception
{
_ssListener = new java.net.ServerSocket (_iListenerPort = iListenerPort);
}
public int listenerPort()
{
return _iListenerPort;
}
public boolean processRequest()
{
try {
java.net.Socket s = _ssListener.accept();
System.out.println ("[Server] => Received a Connection from Client " + s);
java.io.InputStream inputStream = s.getInputStream();
java.io.InputStreamReader inputReader = new java.io.InputStreamReader (inputStream);
java.io.BufferedReader bufferedReader = new java.io.BufferedReader (inputReader);
java.lang.String request = bufferedReader.readLine();
System.out.println ("[Server] => " + request);
java.io.OutputStream outputStream = s.getOutputStream();
java.io.PrintWriter pw = new java.io.PrintWriter (outputStream, true);
pw.write ("I am OK - looks like our sockets talked to each other\n");
pw.flush();
return true;
} catch (java.lang.Exception e) {
e.printStackTrace();
}
return false;
}
public static void main (
final java.lang.String[] astrInput)
throws java.lang.Exception
{
int listenerPort = 9090;
ServiceSkeleton ss = new ServiceSkeleton (listenerPort);
while (true)
ss.processRequest();
}
}