SDSU CS 596 Client-Server Programming
Simple Java Servers

[To Lecture Notes Index]
San Diego State University -- This page last updated February 22, 1996

Contents of Simple Java Servers Lecture

  1. Simple Java Servers
    1. Simple Server Loop
  2. Simple Datagram Server

Simple Java Servers


For TCP servers we use the ServerSocket class

ServerSocket constructors:


Note: if the port is 0, a random port # will be picked.

ServerSocket methods:


Simple Server Loop


Recall simple algorithm for TCP server:

 Create accepting socket
 loop forever
   wait for new connection
   handle connection
 end loop
 


Java equivalent:

 import java.net.*;
 class SimpleTCPServer
 {
   public static void main(String a[])
		throws Exception;
   {
     ServerSocket acceptor = new ServerSocket(0);
     System.out.println("On port " +
	 acceptor.getLocalPort());
     while (true)
     {
       Socket client = acceptor.accpet();
       //  Do stuff here...
       client.close();
     }
   }
 }
 

Simple Datagram Server


Use the DatagramSocket class.

We have already seen this in use in the datagram client from previous lecture but now the send and receive are swapped.

 import java.net.*;
 class SimpleUDPServer
 {
   public static void main(String args[])
	 throws Exception
   {
     DatagramSocket socket = new
			DatagramSocket();
     while (true)
     {
       byte[]  data = new byte[100];
       DatagramPacket packet = new
	      DatagramPacket(data, data.length);
       socket.receive(packet);

       InetAddress address = packet.getAddress();
       int port = packet.getPort();
       packet = new DatagramPacket(data,
		    data.length, address, port);
       socket.send(packet);
     }
   }
 }