コード例 #1
0
        public void IntTest()
        {
            _awaitingMessage = new CountdownEvent(2);

            const string peerAName = "PeerA";
            const int    peerAPort = 4000;

            const string peerBName = "PeerB";
            const int    peerBPort = 5000;

            IPeerIdentification peerAIdentification = new StringPeerIdentification(peerAName);
            IPeerIdentification peerBIdentification = new StringPeerIdentification(peerBName);

            IPeerManager peerApeerManager = new PeerManager();

            peerApeerManager.AddOrUpdatePeer(peerBIdentification, new IPEndPoint(IPAddress.Loopback, peerBPort));

            IPeerManager peerBpeerManager = new PeerManager();

            peerBpeerManager.AddOrUpdatePeer(peerAIdentification, new IPEndPoint(IPAddress.Loopback, peerAPort));

            ISerializer serializer = new JSONSerialiser();

            IUDPNetworking peerA = new UDPNetworking(
                peerAIdentification,
                peerApeerManager,
                serializer,
                new IPEndPoint(IPAddress.Loopback, peerAPort)
                );

            IUDPNetworking peerB = new UDPNetworking(
                peerBIdentification,
                peerBpeerManager,
                serializer,
                new IPEndPoint(IPAddress.Loopback, peerBPort)
                );

            peerA.OnMessageReceived += OnMessageReceived;
            peerB.OnMessageReceived += OnMessageReceived;

            peerA.SendMessageAsync(new StringMessage()
            {
                To   = peerBIdentification,
                From = peerAIdentification,
                Data = "Hello B!"
            });

            peerB.SendMessageAsync(new StringMessage()
            {
                To   = peerAIdentification,
                From = peerBIdentification,
                Data = "Hello A!"
            });

            _awaitingMessage.Wait();

            peerA.Dispose();
            peerB.Dispose();
        }
コード例 #2
0
        private void PrepareListenner()
        {
            var middlewares = new List <IMiddleware <MainMessage> >();

            middlewares.Add(new MsgIdIncrement());
            middlewares.Add(new ServerIdFiller());
            udpListenner = new UDPNetworking <MainMessage>(_config.Listen, (int)_config.UdpPort, this.MsgRouter, middlewares);
        }
コード例 #3
0
        public void Init(Config config)
        {
            this._config = config;
            this._log    = new LoggerWrapper(this.GetType().Name, this._config.Loggers);
            this._log.Debug("Logger initialized.");
            var middlewares = new List <IMiddleware <MainMessage> >();

            middlewares.Add(new MsgIdIncrement());
            middlewares.Add(_serverIdFiller);
            udpListenner = new UDPNetworking <MainMessage>(_config.Listen, (int)_config.UdpPort, this.MsgRouter, middlewares);
        }
コード例 #4
0
    public void SendButtonPress(string button)
    {
        UDPNetworking.log += "Button Pressed: " + button + "\n";

        switch (button)
        {
        case "Forward":
            UDPNetworking.Socket_SendMessage(MOVE_FORWARD_MESSAGE);
            break;

        case "Backward":
            UDPNetworking.Socket_SendMessage(MOVE_BACKWARD_MESSAGE);
            break;

        case "Move Right":
            UDPNetworking.Socket_SendMessage(MOVE_RIGHT_MESSAGE);
            break;

        case "Move Left":
            UDPNetworking.Socket_SendMessage(MOVE_LEFT_MESSAGE);
            break;

        case "Up":
            UDPNetworking.Socket_SendMessage(MOVE_UP_MESSAGE);
            break;

        case "Down":
            UDPNetworking.Socket_SendMessage(MOVE_DOWN_MESSAGE);
            break;

        case "Lean Left":
            UDPNetworking.Socket_SendMessage(LEAN_LEFT_MESSAGE);
            break;

        case "Lean Right":
            UDPNetworking.Socket_SendMessage(LEAN_RIGHT_MESSAGE);
            break;

        case "Lean Forward":
            UDPNetworking.Socket_SendMessage(LEAN_FORWARD_MESSAGE);
            break;

        case "Lean Backward":
            UDPNetworking.Socket_SendMessage(LEAN_BACKWARD_MESSAGE);
            break;

        case "Turn Right":
            UDPNetworking.Socket_SendMessage(TURN_RIGHT_MESSAGE);
            break;

        case "Turn Left":
            UDPNetworking.Socket_SendMessage(TURN_LEFT_MESSAGE);
            break;

        case "A":
            UDPNetworking.Socket_SendMessage(BUTTON_A);
            break;

        case "B":
            UDPNetworking.log += "Action not defined\n";
            break;

        case "X":
            UDPNetworking.log += "Action not defined\n";
            break;

        case "Y":
            UDPNetworking.log += "Action not defined\n";
            break;

        case "Stop":
            UDPNetworking.Socket_SendMessage(STOP_MESSAGE);
            break;

        case "Connection":
            UDPNetworking.Connection();
            break;

        case "Disconnection":
            UDPNetworking.Disconnection();
            break;

        default:                // Aucun bouton correspondant : on n'envoi rien
            UDPNetworking.log += "Button not recognized\n";
            break;
        }
    }