Esempio n. 1
0
        //void doConfirmProcess(object sender, DoWorkEventArgs e)
        //{


        //}
        public void doConfirmProcess()
        {
            username.Enabled = false;
            password.Enabled = false;
            ip.Enabled       = false;

            loadingIMG.Visible = true;
            BackgroundWorker checkPassBackGroundWorker = new BackgroundWorker();

            checkPassBackGroundWorker.WorkerSupportsCancellation = true;
            checkPassBackGroundWorker.DoWork             += new DoWorkEventHandler(checkPassBackGroundWorker_doWork);
            checkPassBackGroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(checkPassBackGroundWorker_done);

            login model = new login();

            if (password.Text == "" || username.Text == "" || ip.Text == "")
            {
                MessageBox.Show("لطفاً همه موارد را تکمیل کنید");
                loadingIMG.Visible = false;
            }
            else
            {
                if (!ip.Text.Contains(":"))
                {
                    MessageBox.Show("آی پی وارد شده صحیح نیست");
                    loadingIMG.Visible = false;
                }
                else
                {
                    model.password = password.Text;
                    model.username = username.Text;
                    model.port     = ip.Text;

                    string str = JsonConvert.SerializeObject(model);

                    checkPassBackGroundWorker.RunWorkerAsync(argument: str);
                }
            }
        }
Esempio n. 2
0
        void checkPassBackGroundWorker_doWork(object sender, DoWorkEventArgs e)
        {
            string query   = (string)e.Argument;
            login  mymodel = JsonConvert.DeserializeObject <login>(query);

            string myip       = mymodel.port;
            string myusername = mymodel.username;
            string mypassword = mymodel.password;

            int    index   = myip.IndexOf(":");
            string portstr = myip.Substring(index + 1, myip.Length - index - 1);
            string ipstr   = myip.Substring(0, index);
            int    port    = Convert.ToInt32(portstr);

            GlobalVariable.port     = port;
            GlobalVariable.serverIP = ipstr;
            string negip = myip.Substring(0, index);


            TcpClient tcpclnt = new TcpClient();

            try
            {
                tcpclnt.Connect(negip, port);
            }

            catch (Exception)
            {
                MessageBox.Show("پاسخی از سرور دریافت نشد");
                tcpclnt.Close();
                return;
            }



            try
            {
                login login = new realstate.login()
                {
                    username = myusername,
                    password = mypassword
                };
                //List<login> list = new List<realstate.login>();
                //list.Add(login);
                //list.Add(login);

                string str = JsonConvert.SerializeObject(login);
                // use the ipaddress as in the server program
                Console.WriteLine("Connected with port" + port.ToString());
                str = "4" + str;
                //Console.Write("Enter the string to be transmitted : ");

                //String str = Console.ReadLine();

                Stream        stm  = tcpclnt.GetStream();
                Encoding      utf8 = Encoding.UTF8;
                ASCIIEncoding asen = new ASCIIEncoding();
                //  byte[] ba = utf8.GetBytes(str);
                byte[] ba = asen.GetBytes(str);
                Console.WriteLine("Transmitting.....");

                stm.Write(ba, 0, ba.Length);
                string json = "";

                const int blockSize = 100000;
                byte[]    buffer    = new byte[blockSize];
                int       bytesRead;

                while ((bytesRead = stm.Read(buffer, 0, buffer.Length)) > 0)
                {
                    for (int i = 0; i < bytesRead; i++)
                    {
                        json = json + Convert.ToChar(buffer[i]);
                    }
                }
                string    json2    = utf8.GetString(buffer);
                loginback response = JsonConvert.DeserializeObject <loginback>(json2);
                if (response.status == "Error")
                {
                    loadingIMG.Visible = false;
                    MessageBox.Show("خطای سرور لطفاً مجدداً تلاش کنید");
                    tcpclnt.Close();
                    //"خطای سرور لطفاً مجدداً تلاش کنید";
                }
                else if (response.status == "error2")
                {
                    loadingIMG.Visible = false;
                    MessageBox.Show("رمز عبور یا نام کاربری صحیح نیست");
                    tcpclnt.Close();
                }
                else
                {
                    loginback log = JsonConvert.DeserializeObject <loginback>(json2);

                    if (log.status == "success")
                    {
                        Settings1.Default.IsLogedIn = "1";
                        GlobalVariable.catsAndAreas = log.autocompleteObject;
                        GlobalVariable.token        = log.token;
                        tcpclnt.Close();
                        //ConfirmBG.CancelAsync();
                        e.Result = "change";
                    }
                    else
                    {
                        tcpclnt.Close();
                    }
                }
            }
            catch (Exception)
            {
                MessageBox.Show("خطا در برقراری ارتباط با سرور");
                tcpclnt.Close();
                return;
            }
        }