public void Login(string username, string password, LoginCallback callback)
        {
            IsConnected          = false;
            _loginResultCallback = callback;

            ConnectDoneCallback connectComplete = delegate(bool succ, string msg)
            {
                if (succ)
                {
                    // keep async reading
                    StartReading();

                    // REAL log in
                    ReqLogin req = new ReqLogin();
                    req.client   = "Quick Arbitrage client";
                    req.ip       = "127.0.0.1";
                    req.username = username;
                    req.password = password;

                    RequestLogin(req);
                }
                else
                {
                    callback(false, msg);
                }
            };

            ConnectAsync(new ConnectDoneCallback(connectComplete));
        }