Server Activities
The processing done by the server is illustrated in Figures Figure 32-6, 32-7, and 32-8, and is of two types:
A message arrives and is broadcast to all the other clients.
A
detailsFormessage arrives for a specified client and is routed to that client. This is a client-to-client message.
Broadcasting
The most complex broadcasting is triggered by the arrival of a create message at the server.
Figure 32-6 shows how create fits into the overall activity of creating a new sprite. Figure 32-9 expands the "broadcast create and request for details" box in the server swimlane in Figure 32-6.

Figure 32-9. Server activities for a create message
TourServerHandler
is principally concerned with differentiating between the messages it receives. TourGroup
handles the two modes of client communication: broadcasting or client-to-client. TourGroup maintains an ArrayList of TouristInfo
objects, which contain the output streams going to the clients.
When a create n x z message arrives at the TourServerHandler, it's passed to doRequest(), which decides how to process it (by calling sendCreate()):
private void doRequest(String line, PrintWriter out)
{
if (line.startsWith("create"))
sendCreate(line);
else if (line.startsWith("detailsFor"))
sendDetails(line);
else // use TourGroup object to broadcast the message
tg.broadcast(cliAddr, port, userName + " " + line);
}
sendCreate() extracts the ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access