示例#1
0
        private void FSD_NetworkDisconnected(object sender, NetworkEventArgs e)
        {
            mPositionUpdateTimer.Stop();
            DisconnectInfo disconnectInfo = new DisconnectInfo
            {
                Type   = (mForcedDisconnect ? DisconnectType.Forcible : (mIntentialDisconnect ? DisconnectType.Intentional : DisconnectType.Other)),
                Reason = (mForcedDisconnect ? mKillReason : string.Empty)
            };

            NetworkDisconnected?.Invoke(this, new NetworkDisconnectedEventArgs(disconnectInfo));
            mIntentialDisconnect = false;
            mForcedDisconnect    = false;
            mIsIdenting          = false;
            mIsIdentPressed      = false;
            if (disconnectInfo.Type == DisconnectType.Forcible)
            {
                if (!string.IsNullOrEmpty(disconnectInfo.Reason))
                {
                    NotificationPosted?.Invoke(this, new NotificationPostedEventArgs(NotificationType.Warning, $"Forcibly disconnected from the network: { disconnectInfo.Reason }"));
                }
                else
                {
                    NotificationPosted?.Invoke(this, new NotificationPostedEventArgs(NotificationType.Warning, "Forcibly disconnected from the network."));
                }
                PlaySoundRequested?.Invoke(this, new PlaySoundEventArgs(SoundEvent.Error));
            }
            else
            {
                NotificationPosted?.Invoke(this, new NotificationPostedEventArgs(NotificationType.Info, "Disconnected from the network."));
            }
        }
        public void CheckDevicesCapture_TcpAndIpInfoExtracted()
        {
            string destinationIpAddress = string.Empty;
            string sourceIpAddress      = string.Empty;

            int destinationPort = 0;
            int sourcePort      = 0;
            //Arrange
            var captureDevice = new TestCaptureDevice();

            //Act
            SharpPcapInformationSource networkInformationSource = new SharpPcapInformationSource(captureDevice, 2000);

            networkInformationSource.NetworkAlert += delegate(object sender, EventArgs e) {
                if (e is NetworkEventArgs)
                {
                    NetworkEventArgs nArgs = e as NetworkEventArgs;

                    destinationIpAddress = nArgs.DestinationIpAddress;
                    sourceIpAddress      = nArgs.SourceIpAddress;
                    destinationPort      = nArgs.DestinationPort;
                    sourcePort           = nArgs.SourcePort;
                }
            };
            networkInformationSource.StartListening();

            //Internet Protocol Version 4, Src: 62.181.194.206, Dst: 192.168.13.85
            //Transmission Control Protocol, Src Port: 21 (21), Dst Port: 64435 (64435), Seq: 1, Ack: 1, Len: 28
            //Assert
            Assert.AreEqual("192.168.13.85", destinationIpAddress);
            Assert.AreEqual("62.181.194.206", sourceIpAddress);
            Assert.AreEqual(64435, destinationPort);
            Assert.AreEqual(21, sourcePort);
        }
示例#3
0
        public void OnRequestHandling(NetworkEventArgs e)
        {
            dynamic json = JObject.Parse(e.Contents);
            var     id   = (string)json.slotReservations[0].slotId;

            _reservationService.InsertSlotReservation2(id);
        }
示例#4
0
 private void FSD_NetworkConnected(object sender, NetworkEventArgs e)
 {
     mForcedDisconnect    = false;
     mIntentialDisconnect = false;
     NotificationPosted?.Invoke(this, new NotificationPostedEventArgs(NotificationType.Info, mConnectInfo.ObserverMode ? "Connected to network in observer mode" : "Connected to network"));
     NetworkConnected?.Invoke(this, new NetworkConnectedEventArgs(mConnectInfo));
 }
示例#5
0
 protected void PrinterDiscoveryCompleted(NetworkEventArgs e)
 {
     if (OnPrinterDiscoveryCompleted != null)
     {
         OnPrinterDiscoveryCompleted(this, e);
     }
 }
示例#6
0
    public NetworkEventArgs Deserialize(byte[] data)
    {
        string           jsonStr = Encoding.UTF8.GetString(data);
        NetworkEventArgs args    = JsonUtility.FromJson <NetworkEventArgs>(jsonStr);

        return(args);
    }
示例#7
0
 public void OnPacketSent(NetworkEventArgs e)
 {
     if (string.IsNullOrWhiteSpace(e.Message))
     {
         terminal.AddMessageToTerminal(e.Message, "System", Color.White);
     }
 }
示例#8
0
 void CommandHandler(object source, NetworkEventArgs n)
 {
     if (n.GetInfo() == NetworkMessageType.TankControl)
     {
         NetIncomingMessage msg = n.GetData();
         if (msg.PositionInBytes == 8)
             return;
         //only if this tank is actually meant...
         if (msg.ReadInt32(32) == Tank.NetworkId)
         {
             NetworkAction a = (NetworkAction) msg.ReadByte();
             switch (a)
             {
                 case NetworkAction.Left:
                     Tank.move_turn_left();
                     break;
                 case NetworkAction.Right:
                     Tank.move_turn_right();
                     break;
                 case NetworkAction.Forward:
                     Tank.move_forward();
                     break;
                 case NetworkAction.Reward:
                     Tank.move_backwards();
                     break;
                 case NetworkAction.Fire:
                     Tank.FireBullet();
                     break;
                 default:
                     throw new ArgumentOutOfRangeException();
             }
         }
     }
 }
示例#9
0
 protected void PrinterDiscoveryBegin(NetworkEventArgs e)
 {
     if (OnPrinterDiscoveryBegin != null)
     {
         OnPrinterDiscoveryBegin(this, e);
     }
 }
示例#10
0
        void OnNetworkConnected(IPAddress _ip, NetworkEventType _type)
        {
            NetworkEventArgs e = new NetworkEventArgs(_ip, _type);

            if (networkChangedEvent != null)
            {
                networkChangedEvent(this, e);
            }
        }
示例#11
0
    public void ParseDataAndDispatchEvent(byte[] data)
    {
        NetworkEventArgs args = _ParseData(data);

        if (args != null)
        {
            EventDispatcher.Instance.TriggerEvent(args);
        }
    }
示例#12
0
        void OnCasparDisconnected(object param)
        {
            buttonConnect.Enabled = true;
            updateConnectButtonText();

            NetworkEventArgs e = (NetworkEventArgs)param;

            disableControls();
        }
示例#13
0
            // 4. 为发送者定义事件”下载完成”的方法
            public void DownloadContent()
            {
                // 将下载的信息传给NetworkEventArgs
                NetworkEventArgs downloadEvent = new NetworkEventArgs();
                downloadEvent.stream = "CONTENT";

                // 发送消息给"消息接收器"
                DownloadEvent(this, downloadEvent);
            }
示例#14
0
 public void OnResponseHandling(NetworkEventArgs e)
 {
     if (_isAttached)
     {
         return;
     }
     _isAttached = true;
     VolumeManager.SetVolume(Volume.Value);
 }
示例#15
0
            // 4. 为发送者定义事件”下载完成”的方法
            public void DownloadContent()
            {
                // 将下载的信息传给NetworkEventArgs
                NetworkEventArgs downloadEvent = new NetworkEventArgs();

                downloadEvent.stream = "CONTENT";

                // 发送消息给"消息接收器"
                DownloadEvent(this, downloadEvent);
            }
示例#16
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Server_OnNetworkMessageReceived(object sender, NetworkEventArgs e)
        {
            var commandHandled = MenuRepository.Values
                                 .Select(menu => menu.Execute(this, e.Message)).FirstOrDefault(handled => handled);

            if (!commandHandled)
            {
                // TODO: Throw an exception of some sort
            }
        }
示例#17
0
        public void OnTcpMessage(Packet packet)
        {
            string msg = packet.ReadString();

            NetworkEventArgs e = new NetworkEventArgs()
            {
                Message = msg + $".", MessageType = MessageType.OnTcpMessage, Protocol = Protocol.TCP, RequestType = RequestType.Receive, Packet = packet
            };

            client.PacketReceived(e);
        }
示例#18
0
        /// <summary>
        /// 监听所有的网络消息
        /// </summary>
        /// <param name="t_Sender"></param>
        /// <param name="t_EventArgs"></param>
        private void M_NetworkComponent_NetworkEventHandler(object t_Sender, GameBoxFramework.BaseEventArgs t_EventArgs)
        {
            NetworkEventArgs t_NetworkEventArgs = t_EventArgs as NetworkEventArgs;

            if (t_NetworkEventArgs.NetworkState == NetworkStateType.Transparent) //如果当前的网络状态为正常传输
            {
                NetworkPacket t_NetworkPacket = t_NetworkEventArgs.Packet;
                string        s = Encoding.Unicode.GetString(t_NetworkPacket.Buffer, 0, t_NetworkPacket.Length);
                Debug.Log("网络名字为:    '" + t_NetworkEventArgs.Name + "'    接受到的数据是:      " + s + "      数据包的长度是:  " + t_NetworkPacket.Length);
            }
        }
示例#19
0
 public bool Match(NetworkEventArgs packet)
 {
     if (packet.DestinationIpAddress == protectedHost)
     {
         if (!portsSeen.Contains(packet.DestinationPort))
         {
             portsSeen.Add(packet.DestinationPort);
         }
     }
     return(portsSeen.Count >= threatThreshold);
 }
示例#20
0
        public bool ProcessNextMessage()
        {
            NetworkEventArgs message = informationSource.GetNextMessage();

            if (rule.Match(message) && reportAgent != null)
            {
                reportAgent.ReportPacketCaptured(message);
            }

            return(rule.Match(message));
        }
示例#21
0
 //caspar event - disconnected
 void caspar__Disconnected(object sender, NetworkEventArgs e)
 {
     if (InvokeRequired)
     {
         BeginInvoke(new UpdateGUI(OnCasparDisconnected), e);
     }
     else
     {
         OnCasparDisconnected(e);
     }
 }
示例#22
0
    public byte[] SerializeNetworkEventArgs(NetworkEventArgs args)
    {
        string jsonStr = JsonUtility.ToJson(args);

        byte[] idBytes = BitConverter.GetBytes((int)args.id);
        if (BitConverter.IsLittleEndian)
        {
            Array.Reverse(idBytes);
        }
        byte[] data = Encoding.UTF8.GetBytes(jsonStr);
        return(_CombomBinaryArray(idBytes, data));
    }
示例#23
0
        void OnCasparDisconnected(object param)
        {
            Connect_Button.Enabled = true;
            updateConnectButtonText();

            NetworkEventArgs e = (NetworkEventArgs)param;

            statusStrip1.BackColor     = Color.LightCoral;
            toolStripStatusLabel1.Text = "Disconnected from " + caspar_.Settings.Hostname; // Properties.Settings.Default.Hostname;

            disableControls();
        }
示例#24
0
        void OnCasparFailedConnect(object param)
        {
            connectServerBtn.Enabled = true;
            updateConnectButtonText();

            NetworkEventArgs e = (NetworkEventArgs)param;

            statusStrip1.BackColor     = Color.LightCoral;
            toolStripStatusLabel1.Text = "Failed to connect to " + caspar_.Settings.Hostname; // Properties.Settings.Default.Hostname;

            disableControls();
        }
示例#25
0
 private void OnPrinterDiscoveryCompleted(object sender, NetworkEventArgs e)
 {
     PrinterFound            = e.Printer.IsFound;
     PrinterStatus           = e.Message;
     PrinterInfo             = e.Printer.PrinterInfo;
     PrintProgressVisibility = Visibility.Collapsed;
     if (e.Printer.IsFound)
     {
         PrinterIp = e.Printer.PrinterIp;
         Settings.Default.PrinterIp = PrinterIp;
         Settings.Default.Save();
     }
 }
示例#26
0
        private static void NetworkManager_OnOnTcpUserStatusChanged(object sender, NetworkEventArgs networkEventArgs)
        {
            var user = (ITcpUser)sender;

            if (networkEventArgs.SocketStatus == TcpSocketStatus.Disconnected)
            {
                DisconnectUser(user);
            }
            else
            {
                ConnectUser(user);
            }
        }
示例#27
0
 private void _game_OnServerStatusChanged(object sender, NetworkEventArgs e)
 {
     if (e.ServerStatus == TcpServerStatus.Starting || e.ServerStatus == TcpServerStatus.Listening)
     {
         var del = new ServerStartDelegate(ServerStartup);
         Dispatcher.Invoke(del, e.ServerStatus);
     }
     else
     {
         var del = new ServerStopDelegate(ServerShutdown);
         Dispatcher.Invoke(del, e.ServerStatus);
     }
 }
示例#28
0
        public void OnUdpTestReceive(Packet packet)
        {
            string msg = packet.ReadString();

            clientSend.SendUDPTest();

            NetworkEventArgs e = new NetworkEventArgs()
            {
                Message = msg + $".", MessageType = MessageType.OnUdpTestReceive, Protocol = Protocol.UDP, RequestType = RequestType.Receive
            };

            client.PacketReceived(e);
        }
示例#29
0
        void OnCasparConnected(object param)
        {
            Connect_Button.Enabled = true;
            updateConnectButtonText();

            caspar_.RefreshMediafiles();
            caspar_.RefreshDatalist();

            NetworkEventArgs e = (NetworkEventArgs)param;

            statusStrip1.BackColor     = Color.LightGreen;
            toolStripStatusLabel1.Text = "Connected to " + caspar_.Settings.Hostname; // Properties.Settings.Default.Hostname;

            enableControls();
        }
示例#30
0
    NetworkEventArgs _ParseData(byte[] data)
    {
        ProtocolID id     = _GetProtocolID(data);
        IParser    parser = _GetParser(id);

        if (parser == null)
        {
            return(null);
        }

        byte[] content = new byte[data.Length - sizeof(int)];
        Buffer.BlockCopy(data, sizeof(int), content, 0, content.Length);
        NetworkEventArgs args = parser.Deserialize(content);

        return(args);
    }
示例#31
0
        public void CreateSimpleSensorWithInformationSource_NormalData_CountsInformationItemsCorrectly()
        {
            //arrange
            var informationSource = new SimpleInformationSource();
            var netEvenTArgs      = new NetworkEventArgs(string.Empty, 0, string.Empty, 0, string.Empty, DateTime.Now, Guid.NewGuid());

            informationSource.AddNetworkMessage(netEvenTArgs);
            informationSource.AddNetworkMessage(netEvenTArgs);
            informationSource.AddNetworkMessage(netEvenTArgs);
            var sensor = new Sensor(informationSource, null);

            //act

            //assert
            Assert.AreEqual(3, sensor.UnreadBufferCount);
        }
示例#32
0
        void OnCasparConnected(object param)
        {
            buttonConnect.Enabled = true;
            updateConnectButtonText();

            caspar_.RefreshMediafiles();
            caspar_.RefreshDatalist();

            NetworkEventArgs e = (NetworkEventArgs)param;

            enableControls();

            //Thread thread = new Thread(NetworkFilter.Begin);
            //thread.Start();
            //Thread.Sleep(5000);
        }
 void connectionManager_NetworkRemoved(object sender, NetworkEventArgs e)
 {
     this.connection = null;
 }
 void connectionManager_NetworkAdded(object sender, NetworkEventArgs e)
 {
     this.Connection = e.Network;
 }
示例#35
0
 void fsdSession_NetworkConnected(object sender, NetworkEventArgs e)
 {
 }
示例#36
0
 void IncomingHandler(object source, NetworkEventArgs n)
 {
     switch (n.GetInfo())
     {
         case NetworkMessageType.WhichTankCanIControl:
             int id = n.GetData().ReadInt32(32);
             NetUtil.GetTankByNetworkId(Scene, id).AddDecorator(Decorators.ControlWasd);
             NetUtil.GetTankByNetworkId(Scene, id).AddDecorator(Decorators.ControlNetworkHook);
             AddNetworkControl(id);
             break;
         case NetworkMessageType.PauseControl:
             if (NetworkPauseControl.Play == (NetworkPauseControl) n.GetData().ReadByte())
                 Scene.Resume();
             else
                 Scene.Pause();
             break;
     }
 }
示例#37
0
 //6. 为接收者定义实际处理事件的方法
 protected virtual void OnDownloaded(object sender, NetworkEventArgs e)
 {
     Console.WriteLine("下载完成: {0}", e.stream);
 }