In this chapter we present two demonstrations of the client/server
paradigm. Here the client/server programs use sockets.
(Later we will discuss RMI and CORBA techniques.)
The goal is to illustrate how one can use Java quickly to build
a client/server system to carry out useful tasks such as transmitting
data from a remote experiment, running diagnostics under the direction
of a client, installing calibration settings, and controlling an
instrument remotely. For demonstration purposes, our servers here
generate simulated data.
We begin with an overview of the client/server with sockets:
The first demonstation involves a simple server whose job is to
provide a set of data to a client on request. The client initially
carries out a log-in procedure with the server and then the server
and client follow a simple protocol for requesting, sending, and
receiving the data.
Both the server and client provide graphical user interfaces (GUI).
The server's GUI displays the status of the communications with
the clients in a text area and also includes some controls (button)
and input fields. The client's GUI has a set of controls and a text
area for communications monitoring plus it includes two histograms
to display the data.
The second demonstration combines the client/server code in the
first example with the physics experiment demonstration of Chapter
The reader can enhance the two client/server programs in many ways
such as suggested in the Exercises
Last update: Dec. 10, 2004