This is what I have thought:
  1. Logging the chat messages (exchanged by the
    clients) on the server.
  2. Registration of ALL clients on the server on
    their start up.
  3. Client should be able to add another client on
    his list for chatting.
  4. When a client logs in from other side, its
    friend client should be able to see it online.


Now, to add to this, there can be things like sharing
text/voice/video files etc, but then the focus will
be on compression majorly.

With the chat program, my intention is to learn the
majority of "networking" concepts.

What else, can be implemented (in this chat program)
which can brush up my "networking" concepts?

P.S. I couldn't figure out which forum to put this in. Please move this if required.