//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); } } }
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; } }