Up: Description of the problem
Previous: Client side
- Maintain threaded connection with applet to receive
- For each connected client there is a
thread of the server (namely a pthread) that listens on
its commands on one hand and passes them on to the ICQ
network on one hand, and receives events from the ICQ
network and forwards them to the client on the other hand.
- Maintain connection with ICQ servers through ICQ
- The ICQ protocol requires certain operations to
ensure correct functionality such as maintaining
``keepalive'' connection with the server, checking for
messages and more. The server should take care of these
operations to make the client as light as possible.
- Maintain and manage a database for contact lists.
- For each user there is an entry in the database that
includes that user's contact list. The server is responsible
for both creating the database entries and managing it,
meaning saving the changes in the contact list to the
database when necessary.