Exemplo n.º 1
0
        private void OnPaqueteRecibido(object sender, PaqueteRecibidoEventArgs e)
        {
            Packet paquete = e.PaqueteRecibido;

            ProcesarPaquete(e.PaqueteRecibido);

        }
Exemplo n.º 2
0
        private void CapaDatos_PaqueteRecibido(object sender, PaqueteRecibidoEventArgs e)
        {
            Packet paquete = e.PaqueteRecibido;
            TCPSegment tcpSegment = paquete.Datos as TCPSegment;
            if (tcpSegment == null)
                return;
            EnviarNotifacionSegmentoRecibido(paquete);
            int hash = ControladorSesion.GetHash(paquete.IpDestino, paquete.IpOrigen, tcpSegment.DestinationPort, tcpSegment.SourcePort);
            if (tcpSegment.SYN_Flag && !tcpSegment.ACK_Flag)
            {
                ControladorSesionServer controladorServer = new ControladorSesionServer(paquete.IpDestino, paquete.IpOrigen, tcpSegment.DestinationPort, tcpSegment.SourcePort);
                _sesionesServer.Add(hash, controladorServer);
               controladorServer.ArchivoRecibido+=new EventHandler<EventArgs>(controladorServer_ArchivoRecibido);

            }
            if (_sesionesServer.ContainsKey(hash))
            {
                ControladorSesionServer controladorServer = _sesionesServer[hash];
                List<TCPSegment> segmentos = controladorServer.ProcesarSegmento(tcpSegment);
                EnviarSegmentos(segmentos, controladorServer);
            }
            if (_sesionesHost.ContainsKey(hash))
            {
                ControladorSesionHost controladorHost = _sesionesHost[hash];
                List<TCPSegment> segmentos = controladorHost.ProcesarSegmento(tcpSegment);
                EnviarSegmentos(segmentos, controladorHost);
            }



        }
Exemplo n.º 3
0
 private void ProcesarPaquete(Packet paquete)
 {
     if (PaqueteRecibido != null)
     {
         PaqueteRecibidoEventArgs evento = new PaqueteRecibidoEventArgs(paquete, BusinessLogic.Threads.ThreadManager.HoraActual);
         PaqueteRecibido(this, evento);
     }
 }