示例#1
0
        static void Main(string[] args)
        {
            _parametersReader = new Messages.ParametersReader(args);
            Tuple <string, int> endPoint = _parametersReader.Validate();

            foreach (string s in args)
            {
                Console.WriteLine("Arg: {0}", s);
            }
            _parametersReader.ReadPlayerInputSettings();
            Connection connection = new Connection(endPoint.Item1, endPoint.Item2, _parametersReader.GameName, _parametersReader);

            try
            {
                connection.Connect();
            }
            catch (Exception e)
            {
                Console.WriteLine("{0} has encountered exception: {1} while trying to connect", nameof(Program), e.Message);
                Console.WriteLine("{0} will now exit", nameof(Program));
                return;
            }
            var    joinGameMessage = new Xsd2.GetGames();
            var    serializer      = new Serializer(joinGameMessage);
            string joinGameMsg     = serializer.Serialize();

            Console.WriteLine(joinGameMsg);
            connection.SendMessage(joinGameMsg);

            Task.WaitAll();
            Console.ReadLine();
            connection.Disconnect();
            Cleanup();
        }
示例#2
0
        public void ParameterReaderPropertlyRefersToFakePathGivenByUserForCommunicationsServer()
        {
            parameters[6] = "somepath";
            var parameterReader = new Messages.ParametersReader(parameters);

            parameterReader.ReadCommunicationServerInputSettings();
            Assert.AreEqual(500, (int)parameterReader.ReadCommunicationServerSettings.KeepAliveInterval);
        }
示例#3
0
        public void ParameterReaderPropertlyRefersToPathGivenByUserForPlayer()
        {
            parameters[6] = "..//..//..//..//..//Messages//Messages//Messages.Test//MessagesTestXmlInput//PlayerSettingsTest.xml";
            var parameterReader = new Messages.ParametersReader(parameters);

            parameterReader.ReadPlayerInputSettings();
            Assert.AreEqual(1000, (int)parameterReader.ReadPlayerSettings.KeepAliveInterval);
        }
示例#4
0
        public void ParameterReaderPropertlyRefersToFakePathGivenByUserForGameMaster()
        {
            parameters[6] = "somepath";
            var parameterReader = new Messages.ParametersReader(parameters);

            parameterReader.ReadGameMasterInputSettings();
            Assert.AreEqual("Initial game", parameterReader.ReadGameMasterSettings.GameDefinition.GameName);
        }
示例#5
0
        public void ParameterReaderPropertlyValidatesInvalidPort()
        {
            parameters[4] = "dasdasdqweqwdas";
            var parameterReader            = new Messages.ParametersReader(parameters);
            Tuple <string, int> testTouple = parameterReader.Validate();

            Assert.AreEqual(8000, testTouple.Item2);
        }
示例#6
0
        public void ParameterReaderPropertlyRefersToPathGivenByUserForGameMaster()
        {
            parameters[6] = "..//..//..//..//..//Messages//Messages//Messages.Test//MessagesTestXmlInput//GameMasterSettingsTest.xml";
            var parameterReader = new Messages.ParametersReader(parameters);

            parameterReader.ReadGameMasterInputSettings();
            Assert.AreEqual("Initial test game", parameterReader.ReadGameMasterSettings.GameDefinition.GameName);
        }
示例#7
0
        public void ParameterReaderPropertlyValidatesInvalidAddress()
        {
            parameters[2] = "dasdasdqweqwdas";
            var parameterReader            = new Messages.ParametersReader(parameters);
            Tuple <string, int> testTouple = parameterReader.Validate();

            Assert.AreEqual("127.0.0.1", testTouple.Item1);
        }
示例#8
0
        public void ParameterReaderPropertlyValidatesAddressAndPort()
        {
            var parameterReader            = new Messages.ParametersReader(parameters);
            Tuple <string, int> testTouple = parameterReader.Validate();

            Assert.AreEqual("234.234.234.234", testTouple.Item1);
            Assert.AreEqual(400, testTouple.Item2);
        }
示例#9
0
        public void ParameterReaderPropertlyReadsTheCommandLineArguments()
        {
            var parameterReader = new Messages.ParametersReader(parameters);

            Assert.AreEqual("234.234.234.234", parameterReader.Adress);
            Assert.AreEqual("400", parameterReader.Port);
            Assert.AreEqual("somepath", parameterReader.ConfigurationFilePath);
        }
示例#10
0
 static void Main(string[] args)
 {
     _parametersReader = new Messages.ParametersReader(args);
     try {
         var connection = new Connection(Convert.ToInt32(_parametersReader.Port));
         connection.StartServer();
         Console.WriteLine("[Communiation server] accepting requests at {0}.", connection.GetEndpoint());
         Console.ReadLine();
     }
     catch (Exception e)
     {
         Console.WriteLine("{0} has encountered exception: {1} while trying to connect", nameof(Program), e.Message);
         Console.WriteLine("{0} will now exit", nameof(Program));
     }
 }
示例#11
0
 public Connection(string ipAddress, int port, string gameName, Messages.ParametersReader inputParameters)
 {
     _logic    = new PlayerLogic(this);
     _address  = ipAddress;
     _port     = port;
     _gameName = gameName;
     if (inputParameters != null)
     {
         _keepAliveInterval = (int)inputParameters.ReadPlayerSettings.KeepAliveInterval;
     }
     else
     {
         _keepAliveInterval = ARBITRATYKEEPALIVEINTERVAL;
     }
     _retryJoinGameInterval = inputParameters.ReadPlayerSettings.RetryJoinGameInterval;
     Enum.TryParse(inputParameters.Team, out _team);
     Enum.TryParse(inputParameters.Role, out _role);
 }
示例#12
0
文件: Connection.cs 项目: m-s-z/SE2
 public Connection(string ipAddress, int port, Messages.ParametersReader inputParameters)
 {
     _gameState   = new GameState(inputParameters);
     _messageList = new List <string>();
     _port        = port;
     _address     = ipAddress;
     if (inputParameters != null)
     {
         _keepAliveInterval = (int)inputParameters.ReadGameMasterSettings.KeepAliveInterval;
     }
     else
     {
         _keepAliveInterval = ARBITRATYKEEPALIVEINTERVAL;
     }
     _timer          = new System.Timers.Timer();
     _timer.Interval = DISCONNECTTIMERINTERVAL; //the timer is set to 5000ms (5s)
     _timer.Elapsed += new ElapsedEventHandler(this.timerHandler);
 }