This directory contains the socket related code.

When to differentiate socket related code and code that should belong
in either the server or common directory is a bit of a grey area.  A
good test is that if the codes primary purpose is to send data to the
client or receive/parse client commands, it should be here.

Certainly the low level communication commands need to be here (setting
up the socket, and the primitive reads/writes which more format the data
but don't originate it).   The functions that encapsulate the item
details to send to the client are also located in this directory, as
are some of the protocol commands the client sends to us.

 The higher level commands (ie, north, maps, cast, ...) are not included
here.  Some of them probably should be, since they do little more than
just output data (who, maps for example.)  The problem with this approach
is the main dispatch routine is still in the server directory, as it should
be (commands to move the player primary function is to do just that - move
the player.  updating the players view is the result of that move).  So
it probably makes sense to keep all those commands clustered there.

 The commands where moved out because I wanted a cleaner seperation of
the client/server protocol area and the actual server functions - this
makes it easier to find code that your are looking for and reduces
the number of files in the server directory.  Down the road, I see
this as more of an issue as the common directory will likely get incorporated
into the server directory and that then get broken out into a few
more specific subdirectories (objects, map, maybe a few more).

Description of the files:

info.c:  Contains the drawinfo and magic map commands.  Was
called sockio.c

init.c: Handles basic initialization of data needed for the client
server, initialization of data structure for new clients, and the freeing
of data when done.  This also contains the declarations for the global
variables that are used.

item.c:  Commands dealing with objects.  This includes both
server updates to the clients, and request from the client to perform
an action on some item.  Some requests from the client may get passed
back to functions in the server directory - more commands from the
server probably need to get moved.

loop.c: Main socket event loop.  This includes the select calls and
the main dispatch loop for data read from the sockets.

lowlevel.c:  Low level socket commands.  The actual calls to read and
write data to the socket.  This file also includes the glue to format
packets per the protocol definition, decompress the packets, and the
utility functions to add/remove stuff from the SockLists.  This
only really deals with moving the data back and forth at a low
level (intergers/bytes), not at the object level.  It also contains
the statistics recording functions.

request.c:  Handles requests to/from the client.  This is the
low level protocol commands, not the higher level game commands.
This includes sending the players attributes and map to the client.

sounds.c: Calls for sending sound information to the client.
