Each client has a ClientMsgHandler to handle all the incoming messages from the server.
A ClientMsgHandler is a thread running during the client is alive.
The ClientMsgHandler should keep running during the period the client is alive and
wait for the messages from the server. Once it gets a message, it will parse it and
and convert it to the acurate message class and does the corresponding action.
MessageParser: To parse the incoming message and convert it to the format of the corresponding message class.