An implementation of {@link ServerSession} that clients can use to managelogging in and communicating with the server. A {@code SimpleClient}is used to establish (or re-establish) a login session with the server, send messages to the server, and log out.
A {@code SimpleClient} is constructed with a {@link SimpleClientListener} which receives connection-related events as wellas messages from the server application.
If the server session associated with a simple client becomes disconnected, then its {@link #send send} method will throw{@code IllegalStateException}. A disconnected client can use the {@link #login login} method to log in again.