CS 596 Client-Server Programming
Assignment 5 Comments
[To Lecture Notes Index]
San Diego State University -- This page last updated April 9, 1996

class SumServer
{
static int portNumber = 4444;
public static void main(String args[])
{
ServerSocket serverSocket;
serverSocket = serverSocketOn( portNumber );
Socket clientSocket = null;
InputStream fromClient;
OutputStream toClient;
while ( true )
{
clientSocket = acceptClientRequestOn( serverSocket );
fromClient = inputStreamFromClient( clientSocket );
toClient = outputStreamToClient( clientSocket );
processClientRequest( fromClient, toClient );
}
}
protected static void processClientRequest( InputStream in,
OutputStream out )
{
SumHandler adder = new SumHandler( in, out);
Thread serverThread = new Thread( adder, "Add" );
serverThread.start();
}
class SumHandler implements Runnable
{
protected ASCIIInputStream cin;
protected PrintStream cout;
public SumHandler( InputStream in, OutputStream out )
{
cin = new ASCIIInputStream( in );
cout = new PrintStream( out, false);
}
public void run ()
{
try
{
// Do server stuff in here
}
catch (IOException e)
{ // What to do here? }
}
}
Responsibility
Who does what?
Is this Master/ Slave programming?
Examples:
- VT100 terminals
- HTTP
A View of Program Responsibilities
User Interface Module
- Controls all user interaction
Logic Modules
- Presentation Logic
- Displays graphical output and processes user input
-
- Computational Logic
- Does computation tasks of the program
-
- Information Logic
- Accesses the information storage system
- Determines how to access storage system
- Determines what to store
- Determines what to retrieve
- Create a query to send to a database (for example)
Information Storage and Retrieval
- Actually reads and writes data from storage devices