/// <summary>
 /// Disconnects from server and closes socket
 /// </summary>
 public override void Shutdown(string reason)
 {
     if (m_serverConnection != null)
     {
         m_serverConnection.Disconnect(reason, 0, true, true);
         m_serverConnection.SendUnsentMessages(NetTime.Now);                 // give disconnect message a chance to get away
     }
     m_connectRequested = false;
     base.Shutdown(reason);
 }