private void KeepListening() { try { while (true) { strAnswer = srReceiver.ReadLine(); if (strAnswer == null) { Form.Connections.Remove(this); CloseConnection(); break; } var answer = MsgEncoding.Decode(strAnswer); switch (answer.Code) { case MsgCode.GlobalChat: var message = answer.Body; ChatServer.SendMessage(UserName, message); break; case MsgCode.DirectChat: ShowDirectMessage(answer.Body); break; case MsgCode.RequestConnection: ChatServer.GiveConnectionInfo(answer.Body); break; } } } catch (Exception) { Form.Connections.Remove(this); CloseConnection(); } }