예제 #1
0
 void im_RegisterFailed(object sender, IMErrorEventArgs e)
 {
     this.BeginInvoke(new MethodInvoker(delegate
     {
         status.Text = "Register failed!";
     }));
 }
예제 #2
0
 virtual protected void OnRegisterFailed(IMErrorEventArgs e)
 {
     if (RegisterFailed != null)
     {
         RegisterFailed(this, e);
     }
 }
예제 #3
0
 virtual protected void OnLoginFailed(IMErrorEventArgs e)
 {
     if (LoginFailed != null)
     {
         LoginFailed(this, e);
     }
 }
예제 #4
0
        void SetupConn()  // Setup connection and login
        {
            client    = new TcpClient(Server, Port);
            netStream = client.GetStream();
            ssl       = new SslStream(netStream, false, new RemoteCertificateValidationCallback(ValidateCert));
            ssl.AuthenticateAsClient("Server");

            br = new BinaryReader(ssl, Encoding.UTF8);
            bw = new BinaryWriter(ssl, Encoding.UTF8);
            int hello = br.ReadInt32();

            if (hello == IM_Hello)// If the hello is correct, continue into if
            {
                bw.Write(IM_Hello);
                bw.Flush();

                bw.Write(reg ? IM_Register : IM_Login);
                bw.Write(UserName);
                bw.Write(Password);
                bw.Flush();

                byte ans = br.ReadByte();
                if (ans == IM_OK)
                {
                    if (reg)
                    {
                        OnRegisterOK();
                    }
                    OnLoginOK();
                    Receiver();
                }
                else  // Login/register failed
                {
                    IMErrorEventArgs err = new IMErrorEventArgs((IMError)ans);
                    if (reg)
                    {
                        OnRegisterFailed(err);
                    }
                    else
                    {
                        OnLoginFailed(err);
                    }
                }
            }
        }