Exemplo n.º 1
0
        private void send_Click(object sender, EventArgs e)
        {
            Hashtable send = new Hashtable();

            send.Add("VER", PublicVariable4CS.ver);
            send.Add("TYPE", "RESET-USER-PWD");
            send.Add("USER", PublicVariable4CS.UserName);
            send.Add("PWD", this.yourPwd.Text);
            send.Add("TARGET-USER", this.targetUser.Text);

            TcpClient     tc2 = new TcpClient(PublicVariable4CS.ServerIP, PublicVariable4CS.ServerPort);
            NetworkStream ns2 = tc2.GetStream();

            byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(PublicVariable4CS.setMessages(send));
            ns2.Write(byteArray, 0, byteArray.Length);

            byte[] bt    = new byte[10240];
            int    count = ns2.Read(bt, 0, bt.Length);

            Hashtable messageTable = PublicVariable4CS.getMessages(System.Text.Encoding.UTF8.GetString(bt));

            if (messageTable.Contains("TYPE"))
            {
                if ((string)messageTable["TYPE"] == "RESET-USER-PWD-RE")
                {
                    if (messageTable.Contains("RE_ANSWER"))
                    {
                        if ((string)messageTable["RE_ANSWER"] == "TRUE")
                        {
                            MessageBox.Show("重置密码成功");
                        }
                        else if ((string)messageTable["RE_ANSWER"] == "FALSE")
                        {
                            MessageBox.Show("重置密码失败:" + (string)messageTable["RE_MESSAGE"]);
                        }
                    }
                    else
                    {
                        PublicVariable4CS.errorMessage("服务器答复异常-无答复");
                    }
                }
                else
                {
                    PublicVariable4CS.errorMessage("服务器响应异常-" + messageTable["TYPE"]);
                }
            }
            else
            {
                PublicVariable4CS.errorMessage("服务器响应异常-无答复类型");
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// 本地监听线程(监听本地请求并发送建立端口转发申请)
        /// </summary>
        public static void localListener1(object obj)
        {
            try
            {
                String[]    mes           = (String[])obj;
                int         port          = int.Parse(mes[0]);
                String      remoteAddress = mes[1];
                TcpListener tl            = new TcpListener(port);
                while (true)
                {
                    try
                    {
                        Hashtable sendTable = new Hashtable();
                        tl.Start();
                        TcpClient tc1 = tl.AcceptTcpClient();//这里是等待数据再执行下边,不会100%占用cpu
                        TcpClient tc2 = new TcpClient(PublicVariable4CS.ServerIP, PublicVariable4CS.ServerPort);

                        NetworkStream ns2 = tc2.GetStream();
                        sendTable.Add("VER", PublicVariable4CS.ver);
                        sendTable.Add("TYPE", "CONNECT");
                        sendTable.Add("USER", PublicVariable4CS.UserName);
                        sendTable.Add("PWD", PublicVariable4CS.PassWord);

                        string[] tmp = remoteAddress.Split(':');

                        sendTable.Add("TOTAL_IP", tmp[0]);
                        sendTable.Add("TOTAL_PORT", tmp[1]);

                        byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(PublicVariable4CS.setMessages(sendTable));
                        ns2.Write(byteArray, 0, byteArray.Length);

                        byte[] bt    = new byte[10240];
                        int    count = ns2.Read(bt, 0, bt.Length);

                        string    reMessage  = System.Text.Encoding.UTF8.GetString(bt);
                        Hashtable reMesTable = PublicVariable4CS.getMessages(reMessage);
                        if ((string)reMesTable["TYPE"] == "CONNECT-RE")
                        {
                            if ((string)reMesTable["RE_ANSWER"] == "TRUE")
                            {
                                object obj1 = (object)(new TcpClient[] { tc1, tc2 });
                                object obj2 = (object)(new TcpClient[] { tc2, tc1 });
                                ThreadPool.QueueUserWorkItem(new WaitCallback(transfer), obj1);
                                ThreadPool.QueueUserWorkItem(new WaitCallback(transfer), obj2);
                            }
                            else if ((string)reMesTable["RE_ANSWER"] == "FALSE")
                            {
                                PublicVariable4CS.errorMessage("端口转发被拒绝:" + (string)reMesTable["RE_MESSAGE"]);
                            }
                            else
                            {
                                throw new Exception("服务器反馈数据异常!");
                            }
                        }
                        else
                        {
                            PublicVariable4CS.errorMessage("错误的返回类型" + (string)reMesTable["TYPE"]);
                        }
                    }
                    catch (Exception ex)
                    {
                        PublicVariable4CS.errorMessage(ex.ToString());
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Exemplo n.º 3
0
        private void button1_Click(object sender, EventArgs e)
        {
            if (this.saveUsername.Checked)
            {
                INIhelp.SetValue("userid", this.userName.Text);
                INIhelp.SetValue("userpwd", this.passWord.Text);
                INIhelp.SetValue("serverip", this.serverIP.Text);
                INIhelp.SetValue("serverport", this.serverPort.Text);
                INIhelp.SetValue("saveuser", "true");
            }
            else
            {
                INIhelp.SetValue("userid", "");
                INIhelp.SetValue("userpwd", "");
                INIhelp.SetValue("saveuser", "false");
            }
            PublicVariable4CS.UserName   = this.userName.Text;
            PublicVariable4CS.PassWord   = this.passWord.Text;
            PublicVariable4CS.ServerIP   = this.serverIP.Text;
            PublicVariable4CS.ServerPort = int.Parse(this.serverPort.Text);
            PublicVariable4CS.SaveUser   = this.saveUsername.Checked;

            PublicVariable4CS.ver = 2.0;

            PublicVariable4CS.serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            IPAddress  ip    = IPAddress.Parse(PublicVariable4CS.ServerIP);
            IPEndPoint point = new IPEndPoint(ip, PublicVariable4CS.ServerPort);

            try {
                //绑定IP地址和端口号
                PublicVariable4CS.serverSocket.Connect(point);
                Hashtable sendTable = new Hashtable();

                sendTable.Add("VER", PublicVariable4CS.ver);
                sendTable.Add("TYPE", "LOGIN");
                sendTable.Add("USER", PublicVariable4CS.UserName);
                sendTable.Add("PWD", PublicVariable4CS.PassWord);


                //发送登录信息
                PublicVariable4CS.serverSocket.Send(Encoding.UTF8.GetBytes(PublicVariable4CS.setMessages(sendTable)));
                byte[] dat = new byte[2048];

                String    data     = System.Text.Encoding.UTF8.GetString(dat, 0, PublicVariable4CS.serverSocket.Receive(dat));
                Hashtable getTable = PublicVariable4CS.getMessages(data);
                if ((string)getTable["TYPE"] == "LOGIN-RE")
                {
                    if ((string)getTable["RE_ANSWER"] == "TRUE")
                    {
                        PublicVariable4CS.UserDesc = (string)getTable["USERDESC"];
                        PublicVariable4CS.INHERIT  = (string)getTable["INHERIT"];
                        PublicVariable4CS.login    = true;
                        this.Close();
                    }
                    else if ((string)getTable["RE_ANSWER"] == "FALSE")
                    {
                        MessageBox.Show("登陆失败:" + (string)getTable["RE_MESSAGE"]);
                    }
                    else
                    {
                        String a = "服务器响应异常!" + data;
                        PublicVariable4CS.errorMessage(a);
                    }
                }
                else
                {
                    PublicVariable4CS.errorMessage("答复类型错误:" + (string)getTable["TYPE"]);
                }
            }
            catch (Exception ex)
            {
                PublicVariable4CS.errorMessage("服务器连接错误,请检查服务器地址是否正确,并保证网络连接正常!\n" + ex);
            }
            ;
        }
Exemplo n.º 4
0
        private void changPwdButton_Click(object sender, EventArgs e)
        {
            try {
                if (this.oldpwd.Text == "")
                {
                    MessageBox.Show("原密码不能为空!");
                    return;
                }
                else if (this.newpwd.Text == "")
                {
                    MessageBox.Show("新密码不能为空!");
                    return;
                }
                else if (this.newpwd2.Text == "")
                {
                    MessageBox.Show("确认密码不能为空!");
                    return;
                }
                else if (this.newpwd2.Text != this.newpwd.Text)
                {
                    MessageBox.Show("两次输入的密码不同!");
                    return;
                }


                Hashtable sendTable = new Hashtable();
                sendTable.Add("VER", PublicVariable4CS.ver);
                sendTable.Add("TYPE", "CHANGPWD");
                sendTable.Add("USER", PublicVariable4CS.UserName);
                sendTable.Add("PWD", this.oldpwd.Text);
                sendTable.Add("NEWPWD", this.newpwd.Text);

                TcpClient     tc2 = new TcpClient(PublicVariable4CS.ServerIP, PublicVariable4CS.ServerPort);
                NetworkStream ns2 = tc2.GetStream();

                byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(PublicVariable4CS.setMessages(sendTable));
                ns2.Write(byteArray, 0, byteArray.Length);

                byte[] bt    = new byte[10240];
                int    count = ns2.Read(bt, 0, bt.Length);

                Hashtable messageTable = PublicVariable4CS.getMessages(System.Text.Encoding.UTF8.GetString(bt));
                if (messageTable.Contains("TYPE"))
                {
                    if ((string)messageTable["TYPE"] == "CHANGPWD-RE")
                    {
                        if (messageTable.Contains("RE_ANSWER"))
                        {
                            if ((string)messageTable["RE_ANSWER"] == "TRUE")
                            {
                                MessageBox.Show("密码修改成功");
                            }
                            else if ((string)messageTable["RE_ANSWER"] == "FALSE")
                            {
                                MessageBox.Show("密码修改失败:" + (string)messageTable["RE_MESSAGE"]);
                            }
                        }
                        else
                        {
                            PublicVariable4CS.errorMessage("服务器答复异常-无答复");
                        }
                    }
                    else
                    {
                        PublicVariable4CS.errorMessage("服务器响应异常-" + messageTable["TYPE"]);
                    }
                }
                else
                {
                    PublicVariable4CS.errorMessage("服务器响应异常-无答复类型");
                }
            }catch (Exception ex)
            {
                PublicVariable4CS.errorMessage("内部异常:" + ex);
            }
        }