示例#1
0
        public IPCProcess(ICommunicationInitialisation initArgs, ICommunicationServer server, ICommunicationClient client)
        {
            this.initArgs = initArgs;
            this.client   = client;
            this.server   = server;
            string[] args = Environment.GetCommandLineArgs();
            string   arg;

            if (args.Length == 1)
            {
                arg = args[0];
            }
            else
            {
                arg = args[1];
            }
            if (arg.StartsWith("$IPCParent{"))
            {
                IsServer             = false;
                this.ParentProcessId = int.Parse(arg.Substring(11, arg.Length - 12));
            }
            else
            {
                IsServer = true;
            }
        }
示例#2
0
 public IPCProcess(ICommunicationInitialisation initArgs, ICommunicationServer server, ICommunicationClient client)
 {
     this.initArgs = initArgs;
     this.client = client;
     this.server = server;
     string[] args = Environment.GetCommandLineArgs();
     string arg;
     if (args.Length == 1)
     {
         arg = args[0];
     }
     else
     {
         arg = args[1];
     }
     if (arg.StartsWith("$IPCParent{"))
     {
         IsServer = false;
         this.ParentProcessId = int.Parse(arg.Substring(11, arg.Length - 12));
     }
     else
     {
         IsServer = true;
     }
 }
示例#3
0
        // Constructor for Udp Server.
        public HeartbeatServer(string ipadr, int port, Encoding encoder)
        {
            // Direccion IpIp
            if (ipadr == null)
            {
                throw new ArgumentNullException("ipadr", "Se necesita una dirección IP.");
            }
            IPAddress tempIP = null;

            if (ipadr.ToUpper() != "ANY" && !IPAddress.TryParse(ipadr, out tempIP))
            {
                throw new ArgumentException("La dirección IP no es válida.", "ipadrv ");
            }
            if (tempIP == null)
            {
                tempIP = IPAddress.Any;
            }
            // Puerto Local
            if (port != 0 & (port < 1024 || port > 65535))
            {
                throw new ArgumentOutOfRangeException("port", " El  valor debe estar entre 1024 y 65535.");
            }
            //  Encoder
            if (encoder == null)
            {
                throw new ArgumentNullException("encoder", "Se necesita un codificador de caracteres.");
            }

            _synchronizationContext = AsyncOperationManager.SynchronizationContext;
            _server = new UdpServer(ipadr, port, encoder);

            RegisterEventHandler();
        }
        public RovStateReceivedHandler(ICommunicationServer comServer, 
            IPilotViewHandler overlayHandler, ICoPilotViewHandler copilotviewhandler)
        {
            this.comServer = comServer;
            this.pilotViewHandler = overlayHandler;
            this.copilotViewhandler = copilotviewhandler;

            comServer.RovStateReceived += comServer_RovStateReceived;
        }
 public DefaultDebugController(ICommunicationServer ipcServer,
                               IDebuggerService debugger,
                               IDebugEventListener callbackService,
                               ThreadManager threadManager,
                               IBreakpointManager breakpointManager)
 {
     _server           = ipcServer;
     _debugger         = debugger;
     _callbackService  = callbackService;
     _threadManager    = threadManager;
     BreakpointManager = breakpointManager;
 }
示例#6
0
        /// <summary>
        /// Конструктор коммуникатора
        /// </summary>
        /// <param name="server">Сервер</param>
        /// <param name="clientFactory">Фаблика клиентов</param>
        public Communicator(
            ICommunicationServer <List <Block> > server,
            ICommunicationClientFactory <List <Block> > clientFactory)
        {
            this.server        = server;
            this.clientFactory = clientFactory;

            nodes = new List <ICommunicationClient <List <Block> > >();

            server.MessageReceivedEvent    += Server_MessageReceivedEvent;
            server.ClientConnectedEvent    += Server_ClientConnectedEvent;
            server.ClientDisconnectedEvent += Server_ClientDisconnectedEvent;
            server.Start();
        }
示例#7
0
        public override void Process(ICommunicationServer cs, int id)
        {
            cs.MarkClientAsGameMaster(id);
            var result = cs.RegisterNewGame(NewGameInfo, id);

            if (result)
            {
                cs.Send(new ConfirmGameRegistrationMessage(id), id);
                Console.WriteLine($"Added new game #{id}: {NewGameInfo.GameName}");
            }
            else
            {
                cs.Send(new RejectGameRegistrationMessage(NewGameInfo.GameName), id);
            }
        }
示例#8
0
        /// <summary>
        /// Initializes a new instance of the <see cref="TestRequestSender2"/> class.
        /// </summary>
        /// <param name="server">Communication server implementation.</param>
        /// <param name="serializer">Serializer implementation.</param>
        /// <param name="protocolConfig">Protocol configuration.</param>
        /// <param name="clientExitedWaitTime">Time to wait for client process exit.</param>
        protected TestRequestSender2(
            ICommunicationServer server,
            IDataSerializer serializer,
            ProtocolConfig protocolConfig,
            int clientExitedWaitTime)
        {
            this.communicationServer  = server;
            this.dataSerializer       = serializer;
            this.connected            = new ManualResetEventSlim(false);
            this.clientExited         = new ManualResetEventSlim(false);
            this.clientExitedWaitTime = clientExitedWaitTime;
            this.operationCompleted   = 0;

            this.highestSupportedVersion = protocolConfig.Version;
        }
示例#9
0
        // Constructor for Pipe Server.
        public HeartbeatServer(string[] names, Encoding encoder)
        {
            //TODO Check paramters
            //  Encoder
            if (encoder == null)
            {
                throw new ArgumentNullException("encoder", "Se necesita un codificador de caracteres.");
            }

            _synchronizationContext = AsyncOperationManager.SynchronizationContext;


            _server = new PipeServer(names, encoder);

            RegisterEventHandler();
        }
示例#10
0
 static private void StartComponent(string[] pipeNames, string ipadr, int port)
 {
     if (pipeNames.Length > 0)
     {
         // Iniciando Pipe server
         _pipeServer = new HeartbeatServer(pipeNames, _enc);
         _pipeServer.MessageReceivedEvent += PipeServer_MessageReceived;
         _pipeServer.Start();
         Builder.Output("Iniciando _pipeServer.");
     }
     // Iniciando UdpServer
     _udpServer = new HeartbeatServer(ipadr, port, _enc);
     _udpServer.MessageReceivedEvent += UdpServer_MessageReceived;
     _udpServer.Start();
     Builder.Output("Iniciando _udpServer.");
 }
 /// <summary>
 ///     Cancel event registration for servers
 /// </summary>
 private void UnregisterFromServerEvents(ICommunicationServer server)
 {
     server.ClientConnectedEvent    -= ClientConnectedHandler;
     server.ClientDisconnectedEvent -= ClientDisconnectedHandler;
 }
示例#12
0
 public override void Process(ICommunicationServer cs, int id)
 {
     throw new NotImplementedException();
 }
示例#13
0
        public SocketServerTests()
        {
            this.socketServer = new SocketServer();

            this.tcpClient = new TcpClient();
        }
示例#14
0
 public override void Process(ICommunicationServer cs, int id)
 {
     cs.UpdateTeamCount(id, PlayerDefinition.Team);
     cs.AssignGameIdToPlayerId(id, PlayerId);
     cs.Send(this, PlayerId);
 }
示例#15
0
 private void UnregisterFromServerEvents(ICommunicationServer <T> server)
 {
     server.ClientConnectedEvent    -= ClientConnectedHandler;
     server.ClientDisconnectedEvent -= ClientDisconnectedHandler;
     server.MessageReceivedEvent    -= MessageReceivedHandler;
 }
示例#16
0
 public override void Process(ICommunicationServer cs, int id)
 {
     cs.DeregisterGame(id);
 }
示例#17
0
 public DispatchingService(ICommunicationServer server, TService requestService)
 {
     _server           = server;
     _requestProcessor = new MethodsDispatcher <TService>();
     _requestService   = requestService;
 }
示例#18
0
 public abstract void Process(ICommunicationServer cs, int id);
示例#19
0
 public RpcProcessor(ICommunicationServer server)
 {
     _server = server;
 }
示例#20
0
 public override void Process(ICommunicationServer cs, int id)
 {
     cs.Send(new RegisteredGamesMessage(cs.GetAllJoinableGames()), id);
 }
 public TestableTestRequestSender(ICommunicationServer server, IDataSerializer serializer, ProtocolConfig protocolConfig)
     : base(server, serializer, protocolConfig, 0)
 {
 }
 public override void Process(ICommunicationServer cs, int id)
 {
     cs.Send(this, PlayerId);
 }
示例#23
0
 /// <summary>
 /// Unregisters from the given server's events
 /// </summary>
 /// <param name="server"></param>
 private void UnregisterFromServerEvents(ICommunicationServer server)
 {
     server.ClientConnectedEvent -= ClientConnectedHandler;
     server.ClientDisconnectedEvent -= ClientDisconnectedHandler;
     server.MessageReceivedEvent -= MessageReceivedHandler;
 }