FileDocCategorySizeDatePackage
Server.javaAPI DocExample1286Fri Jul 11 17:24:42 BST 1997None

Server.java

import java.net.*;
import java.io.*;

public class Server { 
	public static void main( String argv[] ) throws IOException {
		ServerSocket ss = new ServerSocket( Integer.parseInt(argv[0]) );
		while ( true )
			new ServerConnection( ss.accept() ).start();
	}
}
class ServerConnection extends Thread {
	Socket client;
	ServerConnection ( Socket client ) throws SocketException {
		this.client = client;
		setPriority( NORM_PRIORITY - 1 );
	}

	public void run() {
		try {
			ObjectOutputStream out = 
				new ObjectOutputStream( client.getOutputStream() );
			ObjectInputStream in = 
				new ObjectInputStream( client.getInputStream() );

			while ( true ) {
				out.writeObject( processRequest( in.readObject() ) );
				out.flush();
			}
		} catch ( EOFException e3 ) { // Normal EOF
			try {
				client.close();
			} catch ( IOException e ) { }
		} catch ( IOException e ) {
			System.out.println( "I/O error " + e ); // I/O error
		} catch ( ClassNotFoundException e2 ) {
			System.out.println( e2 ); // Unknown type of request object
		}
	}

	private Object processRequest( Object request ) {
		if ( request instanceof DateRequest ) 
			return new java.util.Date();
		else if ( request instanceof WorkRequest )
			return ((WorkRequest)request).execute();
		else
			return null;
	}
}