Exemplo n.º 1
0
        private OperationResult ServerConnect(string method, string servAddress, string streamDir)
        {
            ConnectParam connParam = new ConnectParam()
            {
                QuoteAddress = servAddress,
                StreamFolder = streamDir
            };

            byte[] param_data = DataTranslater.Serialize(connParam);

            byte[] ret_data = null; // Request(method, param_data);
            if (ret_data != null)
            {
                OperationReturn rt = DataTranslater.Deserialize <OperationReturn>(ret_data);
                return(new OperationResult
                {
                    Success = rt.Success,
                    ErrorMessage = rt.ErrorMessage
                });
            }
            else
            {
                return new OperationResult
                       {
                           Success      = false,
                           ErrorMessage = "Returned data (Connect) is invalid"
                       }
            };
        }
Exemplo n.º 2
0
        /// <summary>
        /// 连接服务器异步回调
        /// </summary>
        private void ConnCallBackF(IAsyncResult ar)
        {
            StateObject stateObject = (StateObject)ar.AsyncState;

            try
            {
                stateObject.newClient.EndConnect(ar);
                stateObject.listViewModel.DownName = "连接成功.";

                ConnectParam connectParam = new ConnectParam(stateObject.newClient);
                connectParam.bw.Write(stateObject.gameID); //发送游戏ID
                connectParam.stateObject = stateObject;

                downViewModel.connectList.Add(connectParam);

                stateObject.listViewModel.DownName = "准备接收.";

                ReceiveFileDelegate d = new ReceiveFileDelegate(ReceiveData);
                d.BeginInvoke(connectParam, new AsyncCallback(CallBackF), null);
            }
            catch (Exception ex)
            {
                Application.Current.Dispatcher.Invoke(new Action(() =>
                {
                    XWT.MessageBox.Show("未能与服务器取得连接!错误:" + ex.Message, "提示", MessageBoxButton.OK, MessageBoxImage.Error);
                    downViewModel.AllDowns.Remove(stateObject.listViewModel);
                    this.Close();
                }), System.Windows.Threading.DispatcherPriority.Normal);
            }
        }
Exemplo n.º 3
0
        public static void ConnectionStrings(ConnectParam _cp)
        {
            SqlConnectionStringBuilder connect1 = new SqlConnectionStringBuilder();

            connect1.DataSource         = _cp.DataSourse;         // имя сервера
            connect1.InitialCatalog     = _cp.InitialCatalog;     // имя базы данных
            connect1.IntegratedSecurity = _cp.IntegratedSecurity; //проверка подлинности через авторизацию Windows

            connect1.AttachDBFilename = _cp.AttachDbFileName;     // путь к БД

            string conf_name            = _cp.NameConString;      // название строки подключения из app.config
            ConnectionStringSettings cs = ConfigurationManager.ConnectionStrings[conf_name];

            cs = new ConnectionStringSettings(conf_name, connect1.ConnectionString, "System.Data.SqlClient");

            System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

            // Получаем доступ к строкам подключения
            ConnectionStringsSection csSection = config.ConnectionStrings;

            // заменяем строку подключения
            csSection.ConnectionStrings.Remove(cs.Name);
            csSection.ConnectionStrings.Add(cs);

            // сохранение файла конфигурации
            config.Save(ConfigurationSaveMode.Modified);
            ConfigurationManager.RefreshSection("connectionStrings");
        }
Exemplo n.º 4
0
        private static void CloseConnect()
        {
            var res = _server.Disconnect();

            Console.WriteLine($"Соединение закрыто: {res.Succes}");
            _connectparam = null;
            _gameparam    = null;
        }
Exemplo n.º 5
0
 public BaseGameHost(ConnectParam param, string gameCode)
 {
     GameServerId = param.GameServerId;
     Path         = param.Path;
     GameCode     = gameCode;
     if (!string.IsNullOrEmpty(param.GameName))
     {
         GameName = param.GameName;
     }
     Password = param.SshPassword;
     Ip       = param.SshIp;
     Client   = new SshClient(param.SshIp, param.SshPort, param.SshUserName, param.SshPassword);
 }
Exemplo n.º 6
0
        private static void MonitorStateServer(DataReceivedModel data)
        {
            var state = data.ServerStates?.FirstOrDefault(o => o.ParameterName.Equals("ServerOFF"));

            if (state != null)
            {
                //_server.DataReceived -= _server_DataReceived;
                Console.WriteLine($"Сервер {_connectparam.FamilyGame} остановлен.");
                _connectparam   = null;
                _server         = null;
                _isWriteCommand = true;
                WriteCommand();
            }
            state = data.ServerStates?.FirstOrDefault(o => o.ParameterName.Equals("Console"));
            if (state != null && state.ParameterValue == "Ready")
            {
                _isConsoleOpen = true;
            }
            state = data.ServerStates?.FirstOrDefault(o => o.ParameterName.Equals("Status"));
            if (state != null && state.ParameterValue == "Ready")
            {
                //CloseConsole();
                _isConsoleOpen = false;
                foreach (var el in data.ServerStates)
                {
                    Console.WriteLine($"{el.ParameterName} : {el.ParameterValue}");
                }
                Console.Write("|");
                foreach (var head in data.TableInfo.Headers)
                {
                    Console.Write($"{head}\t|");
                }
                Console.Write('\n');
                if (data.TableInfo.Values.Any())
                {
                    Console.Write("|");
                }
                foreach (var value in data.TableInfo.Values)
                {
                    Console.Write($"{value}\t|");
                }
                Console.Write('\n');
                WriteCommand();
            }
        }
Exemplo n.º 7
0
        private static ConnectParam LinuxConnecton(GameFamily game)
        {
            var res = new ConnectParam
            {
                FamilyGame = game,
                SshIp      = LinuxSrvIp,
                SshPort    = 22,
                //SshUserName = "******",
                //SshPassword = "******",
                Path = "/host",
                //SshPort = 20002,
                SshUserName  = "******",
                SshPassword  = "******",
                GameServerId = "1002"
                               //Path = "/home/vncuser/host"
            };

            return(res);
        }
Exemplo n.º 8
0
        private static void RunServer()
        {
            Console.Write(" 1 - Ark \t 2 - Arma3\n 3 - CS\t 4 - CSGO\n 5 - CSS\t 6 - Dod\n 7 - Gmod\t 8 - L4D\n 9 - L4D2\t 10 - Minecraft\n" +
                          " 11 - TF2\t 12 - Bmdm\n 13 - Cscz\t 14 - Cure\n 15 - Insurgency\t 16 - JustCause2\n 17 - Rust\t 18 - Dods\n" +
                          " 19 - Dst\t 20 - DoubleAction\n 21 - FistfulofFrags\t 22 - Hurtworld\n 23 - KillingFloor\t 24 - NS2\n" +
                          " 25 - Nmrih\t 26 - Opfor\n 27 - Pvkii\t 28 - Quake Live\n Выберите игру: ");
            var key = Console.ReadLine();

            _connectparam = GetLinuxConnect(key);
            if (_connectparam == null)
            {
                return;
            }
            _server = GameServerFactory.Instance.Get(_connectparam);
            var res = _server.Connect();

            _gameparam = new CreateParam
            {
                Slots        = 2,
                GamePort     = 27020,
                GameServerId = _connectparam.GameServerId,
                GamePassword = "",
            };
            res = _server.Create(_gameparam);
            if (!res.Succes)
            {
                Console.WriteLine($"{res.ErrorMessage}");
            }
            var param = GetChangeStatusParam();

            param.TypeStatus = GameHostTypeStatus.Enable;
            res = _server.ChangeStatus(param);
            if (!res.Succes)
            {
                Console.WriteLine($"{res.ErrorMessage}");
            }
            //_server.DataReceived += _server_DataReceived;
            //var res = _server.On(_gameparam);
            //if (res.ServerStates == null) return;
            //foreach (var param in res.ServerStates)
            //    Console.WriteLine($"{param.ParameterName}: {param.ParameterValue}");
        }
Exemplo n.º 9
0
 public Cs(ConnectParam param, string gameCode = "cstrike") : base(param, gameCode)
 {
     GameName = "cs";
 }
Exemplo n.º 10
0
 public Ns2(ConnectParam param) : base(param, "ns2")
 {
     GameName = "ns2";
 }
Exemplo n.º 11
0
 public Hw(ConnectParam param) : base(param, "hw")
 {
     GameName = "hw";
 }
Exemplo n.º 12
0
 public BaseGameHost(ConnectParam connectParam, string gameCode)
 {
     this.GameCode = gameCode;
     Client        = new SshClient(connectParam.SshIp, connectParam.SshPort, connectParam.SshUserName, connectParam.SshPassword);
 }
Exemplo n.º 13
0
 public Dab(ConnectParam param) : base(param, "dab")
 {
     GameName = "dab";
 }
Exemplo n.º 14
0
 public Dst(ConnectParam param) : base(param, "dst")
 {
     GameName = "dst";
 }
Exemplo n.º 15
0
 public CureGame(ConnectParam param) : base(param, "cure")
 {
 }
Exemplo n.º 16
0
 public SAMP(ConnectParam param) : base(param)
 {
 }
Exemplo n.º 17
0
 public Css(ConnectParam param) : base(param)
 {
     GameName = "css";
 }
Exemplo n.º 18
0
 public Fof(ConnectParam param) : base(param, "fof")
 {
     GameName = "fof";
 }
Exemplo n.º 19
0
 public Ql(ConnectParam param) : base(param, "baseq3")
 {
     GameName = "ql";
 }
Exemplo n.º 20
0
 public Arma3(ConnectParam param) : base(param, "arma3")
 {
     GameName = "arma3";
 }
Exemplo n.º 21
0
 public Kf(ConnectParam param) : base(param, "System")
 {
     GameName = "kf";
 }
Exemplo n.º 22
0
 public L4D2(ConnectParam param) : base(param, "left4dead2")
 {
     GameName = "l4d2";
 }
Exemplo n.º 23
0
        private static ConnectParam GetLinuxConnect(string key)
        {
            ConnectParam connectparam = null;

            switch (key)
            {
            case "3":
                connectparam = LinuxConnecton(GameFamily.Cs);
                break;

            case "1":
                connectparam = LinuxConnecton(GameFamily.Ark);
                break;

            case "2":
                connectparam = LinuxConnecton(GameFamily.Arma3);
                break;

            case "4":
                connectparam = LinuxConnecton(GameFamily.CsGo);
                break;

            case "5":
                connectparam = LinuxConnecton(GameFamily.Css);
                break;

            case "6":
                connectparam = LinuxConnecton(GameFamily.Dod);
                break;

            case "7":
                connectparam = LinuxConnecton(GameFamily.GMod);
                break;

            case "8":
                connectparam = LinuxConnecton(GameFamily.L4D);
                break;

            case "9":
                connectparam = LinuxConnecton(GameFamily.L4D2);
                break;

            case "10":
                connectparam = LinuxConnecton(GameFamily.Minecraft);
                break;

            case "11":
                connectparam = LinuxConnecton(GameFamily.T2F);
                break;

            case "12":
                connectparam = LinuxConnecton(GameFamily.Bmdm);
                break;

            case "13":
                connectparam = LinuxConnecton(GameFamily.Cscz);
                break;

            case "14":
                connectparam = LinuxConnecton(GameFamily.Cure);
                break;

            case "15":
                connectparam = LinuxConnecton(GameFamily.Insurgency);
                break;

            case "16":
                connectparam = LinuxConnecton(GameFamily.JustCause2);
                break;

            //case "17":
            //    connectparam = LinuxConnecton(GameFamily.Rust);
            //    break;
            case "18":
                connectparam = LinuxConnecton(GameFamily.Dods);
                break;

            case "19":
                connectparam = LinuxConnecton(GameFamily.DontStarveTogether);
                break;

            case "20":
                connectparam = LinuxConnecton(GameFamily.DoubleAction);
                break;

            case "21":
                connectparam = LinuxConnecton(GameFamily.FistfulofFrags);
                break;

            case "22":
                connectparam = LinuxConnecton(GameFamily.Hurtworld);
                break;

            //case "23":
            //    connectparam = LinuxConnecton(GameFamily.KillingFloor);
            //    break;
            //case "24":
            //    connectparam = LinuxConnecton(GameFamily.Ns2);
            //    break;
            case "25":
                connectparam = LinuxConnecton(GameFamily.Nmrih);
                break;

            case "26":
                connectparam = LinuxConnecton(GameFamily.Opfor);
                break;

            case "27":
                connectparam = LinuxConnecton(GameFamily.Pvkii);
                break;

            case "28":
                connectparam = LinuxConnecton(GameFamily.Ql);
                break;
            }
            return(connectparam);
        }
Exemplo n.º 24
0
        /// <summary>
        /// 接收数据
        /// </summary>
        /// <param name="connectParam">连接参数</param>
        private void ReceiveData(ConnectParam connectParam)
        {
            try
            {
                connectParam.stateObject.listViewModel.DownName = connectParam.br.ReadString(); //获取文件名

                long downSize = connectParam.br.ReadInt64();                                    //获取文件大小
                connectParam.stateObject.listViewModel.DownSize = ChangeToSize(downSize);       //转换为MB

                string gametime = connectParam.br.ReadString();                                 //获取版本时间

                using (connectParam.fs = new FileStream(connectParam.gamePath + connectParam.stateObject.listViewModel.DownName + ".temp", FileMode.Create))
                {
                    byte[] buffer = new byte[connectParam.bufferSize];

                    connectParam.StartTimer(); //开启计时器

                    while (connectParam.readL < downSize)
                    {
                        connectParam.size = connectParam.br.Read(buffer, 0, connectParam.bufferSize);
                        connectParam.fs.Write(buffer, 0, connectParam.size);
                        connectParam.readL += connectParam.size;

                        if (connectParam.sec != 0)
                        {
                            long downSpeed = connectParam.readL / connectParam.sec;

                            connectParam.stateObject.listViewModel.DownSpeed = ChangeToSize(downSpeed) + "/S"; //速度
                        }
                        connectParam.stateObject.listViewModel.DownProgress = String.Format("{0:N1}", (double)connectParam.readL * 100 / downSize);
                    }
                }

                if (File.Exists(connectParam.gamePath + connectParam.stateObject.listViewModel.DownName))
                {
                    try
                    {
                        File.Delete(connectParam.gamePath + connectParam.stateObject.listViewModel.DownName + ".temp");
                    }
                    catch { }
                }
                else
                {
                    File.Move(connectParam.gamePath + connectParam.stateObject.listViewModel.DownName + ".temp",
                              connectParam.gamePath + connectParam.stateObject.listViewModel.DownName);
                }

                //将游戏ID发到“我的游戏模块”
                addgame_Aggregator.GetEvent <AddGameMsgEvent>().Publish(
                    new AddGameMsgOrder {
                    GameId = connectParam.stateObject.gameID, GameName = connectParam.stateObject.listViewModel.DownName, GameTime = gametime
                });
            }
            catch
            {
                if (File.Exists(connectParam.gamePath + connectParam.stateObject.listViewModel.DownName + ".temp"))
                {
                    File.Delete(connectParam.gamePath + connectParam.stateObject.listViewModel.DownName + ".temp");
                }
            }
            finally
            {
                connectParam.StopTimerAndClose();

                Application.Current.Dispatcher.Invoke(new Action(() =>
                {
                    downViewModel.AllDowns.Remove(connectParam.stateObject.listViewModel);  //下载完成,移除
                    downViewModel.connectList.RemoveAll(conn => conn.stateObject.gameID == connectParam.stateObject.gameID);
                }), System.Windows.Threading.DispatcherPriority.Normal);
            }
        }
Exemplo n.º 25
0
 public L4D(ConnectParam param, string gameCode = "left4dead") : base(param, gameCode)
 {
     GameName = "l4d";
 }
Exemplo n.º 26
0
 public CsGo(ConnectParam param) : base(param)
 {
     GameName = "csgo";
 }
Exemplo n.º 27
0
 public JustCause2(ConnectParam param) : base(param, "jc2")
 {
     GameName = "jc2"; _path = param.Path;
 }
Exemplo n.º 28
0
 public Gmod(ConnectParam param) : base(param, "garrysmod")
 {
     GameName = "gmod";
 }
Exemplo n.º 29
0
 public Minecraft(ConnectParam param) : base(param)
 {
 }
Exemplo n.º 30
0
 public Dod(ConnectParam param) : base(param, "dod")
 {
     GameName = "dod";
 }