示例#1
0
        //初始化与次数统计
        private StateStru TimeUpdate(StateStru States)
        {
            String Times = this.State.Text;
            int    time;
            int    first = Times.IndexOf(":");
            int    last  = Times.IndexOf("\r\n");

            Times        = Times.Substring(first + 1, last - first - 4);
            time         = int.Parse(Times) + 1;
            Times        = time.ToString();
            States.Value = "State(Times:" + Times + ")..\r\n小心心么么哒.";
            F5(States.Value);
            //States.Value = this.State.Text;
            States.col = 2;
            return(States);
        }
示例#2
0
        //输出结构体并更新
        private StateStru LabelStick(StateStru StateBefore, string ToStick)
        {
            StateStru StateAfter;

            StateAfter.Value = StateBefore.Value + "\r\n" + ToStick;
            if (StateBefore.col + 1 >= 12)
            {
                StateBefore.col  = StateAfter.Value.IndexOf("\r\n");
                StateAfter.Value = StateAfter.Value.Substring(StateBefore.col + 4);
                StateAfter.col   = StateBefore.col;
            }
            else
            {
                StateAfter.col = StateBefore.col + 1;
            }
            F5(StateAfter.Value);
            return(StateAfter);
        }
示例#3
0
        public void GetStatesMethod()
        {
            string    Versions = "";
            FtpHelper Ftp      = new FtpHelper();
            StateStru States;

            States.col   = 0;
            States.Value = "";
            States       = TimeUpdate(States);
            VersionGet Ver = new VersionGet();

            Ver.Send();
            States = LabelStick(States, "正在连接FTP服务器...");
            while (true)
            {
                if (Ver.SendStatus == -1)
                {
                    States = LabelStick(States, Ver.SendMessage);
                    ReStart();
                    return;
                }
                else if (Ver.SendStatus == 1)
                {
                    States = LabelStick(States, Ver.SendMessage);
                    while (true)
                    {
                        if (Ver.RecvStatus == -1)
                        {
                            States = LabelStick(States, Ver.RecvMessage);
                            ReStart();
                            return;
                        }
                        else if (Ver.RecvStatus == 1)
                        {
                            States   = LabelStick(States, "版本号:" + Ver.RecvMessage);
                            Versions = Ver.RecvMessage;
                            break;
                        }
                    }
                    break;
                }
            }
            StateStru Vers = Read(".\\ssr-win\\version.txt");
            string    vers = Vers.Value;

            if (Vers.Value.Substring(Vers.Value.IndexOf("version") + 8, 4) == Versions)
            {
                States = LabelStick(States, "服务端版本未更新..正在启动..");
                System.Diagnostics.Process.Start(".\\ssr-win\\ShadowsocksR-dotnet4.0.exe");
                Closed();
            }
            else
            {
                //int Large = -1;  //调试
                int Large = FtpHelper.GetFileSize("gui-config.json");
                if (Large == -1)
                {
                    States = LabelStick(States, "获取文件失败,请重试!");
                    ReStart();
                }
                else
                {
                    States = LabelStick(States, "正在获取文件大小...");
                    String SLarge = "获取成功,文件大小为" + Large.ToString() + "KB";
                    States = LabelStick(States, SLarge);
                    States = LabelStick(States, "正在下载...");
                    //int Suc = -1;
                    int Suc = Ftp.Download("gui-config.json");
                    if (Suc == -1)
                    {
                        States = LabelStick(States, "下载失败,请重试!");
                        ReStart();
                    }
                    else
                    {
                        States = LabelStick(States, "下载完成");
                        vers   = vers.Substring(0, vers.IndexOf("version") + 8) + Versions + "\n";
                        using (System.IO.StreamWriter file = new System.IO.StreamWriter(@".\\ssr-win\\version.txt", false))
                        {
                            WriteData(file, vers);
                        }
                        System.Diagnostics.Process.Start(".\\ssr-win\\ShadowsocksR-dotnet4.0.exe");
                        Closed();
                    }
                }
            }
        }