Prueba :: Poe :: Server :: TCP

Un componente POE que proporciona servicios de servidor TCP para casos de prueba
Descargar ahora

Prueba :: Poe :: Server :: TCP Clasificación y resumen

Anuncio publicitario

  • Rating:
  • Licencia:
  • Perl Artistic License
  • Precio:
  • FREE
  • Nombre del editor:
  • Chris Williams
  • Sitio web del editor:
  • http://search.cpan.org/~bingos/

Prueba :: Poe :: Server :: TCP Etiquetas


Prueba :: Poe :: Server :: TCP Descripción

Un componente POE que proporciona servicios de servidor TCP para casos de prueba La prueba :: PoE :: Server :: TCP Módulo es un componente POE que proporciona un marco de servidor TCP para su inclusión en los casos de prueba de componentes del cliente, en lugar de tener que rodar su propio. Se registra en el componente, una sesión recibirá eventos relacionados al cliente se conecta, se desconecta, la entrada y la salida enrojecidos. Cada uno de estos eventos se referirá a una ID de cliente única que se puede usar en la comunicación con el componente al enviar datos al cliente o desconectar un servidor de ECHO de conexión de cliente. HSYNOPSISA con el registro de solicitudes por cada cliente: use estricto; usar PoE; Usar prueba :: Poe :: Server :: TCP; PoE :: Session-> Crear (Package_States => ,],); $ poe_kernel-> corre (); Salida 0; Sub _start {# Slete la prueba :: Poe :: Server :: TCP Server. $ _ -> {testd} = prueba :: poe :: servidor :: tcp-> spawn (dirección => '127.0.0.1', puerto => 0,); regreso; } Sub testd_connected {My ($ HEAP, $ ID) = @_ ; # Un cliente conectado La ID única está en Arg0 # Crear un Arrayref en blanco para este cliente en * nuestro * Heap $ Peack -> {Clientes} -> {$ ID} = []; regreso; } Sub testd_client_input {my ($ kernel, $ montones, $ sender, $ id, $ entrada) = @_ ; # El cliente nos envió una línea de entrada # Permite almacenarlo Push @ {$ HEAP -> {Clientes} -> {$ id}, $ entrada; # De acuerdo, somos un servidor de eco, así que le enviemos el envío al cliente # Sabemos que el remitente siempre puede obtener el objeto del servidor. My $ TESTD = $ SENDER-> get_heap (); $ testd-> send_to_client ($ id, $ entrada); # O incluso # $ Sender-> get_heap () -> send_to_client ($ id, $ entrada); # Alternativamente, simplemente podríamos publicar al remitente # $ kernel-> publicar ($ remitente, 'send_to_client', $ id, $ entrada); regreso; } Sub Testd_Disconnectected {My ($ Heap, $ ID) = @_ ; # Cliente desconectado por cualquier motivo # Necesitamos liberar nuestro almacenamiento Eliminar $ MILA -> {Clientes} -> {$ ID}; regreso; } Usando el módulo en un testcase: use estricto; Usa la prueba :: Más; Use Poe QW (Rueda :: SocketFactory Wheel :: ReadWrite Filter :: Line); Usar prueba :: Poe :: Server :: TCP; Pruebas de plan => 5; My @Data = ('Esto es una prueba', 'Esta es otra prueba', 'Esta es la última prueba',); PoE :: Session-> Crear (Package_States => ,], montón => {data => @ @data,},); $ poe_kernel-> corre (); Salida 0; sub _start {$ _ -> {testd} = prueba :: poe :: servidor :: tcp-> spawn (dirección => '127.0.0.1', puerto => 0,); regreso; } Sub Testd_registered {My ($ HEAP, $ objeto) = @_ ; $ Heap -> {Port} = $ objeto-> Puerto (); $ montones -> {fábrica} = poe :: rueda :: socketfactory-> nuevo (remoteaddress => '127.0.0.1', RemotePort => $ Heap -> {Port}, SuccessEvent => '_sock_up', FailureVent => ' _sock_fail ',); regreso; } Sub _Sock_Up {My ($ Heap, $ Socket) = @_ ; Eliminar $ Heap -> {fábrica}; $ montón -> {socket} = Poe :: Rueda :: ReadWrite-> Nuevo (Manija => $ Socket, InputEvent => '_Sock_in', Errorevent => '_Sock_err',); $ montón -> {socket} -> PUT ($ Heap -> {Data} -> ); regreso; } Sub _Sock_Fail {My $ Heap = $ _ ; Eliminar $ Heap -> {fábrica}; $ montón -> {testd} -> apagado (); regreso; } Sub _Sock_in {My ($ Heap, $ INPUT) = @_ ; My $ DATA = SHIFT @ {$ Heap -> {DATOS}}; OK ($ PURS EQ $ DATA, 'DATA APROBADO'); a menos que (Scalar @ {$ Heap -> {Data}}) {Eliminar $ montón -> {socket}; regreso; } $ $ montones -> {socket} -> PUT ($ Heap -> {Data} -> ); regreso; } sub _sock_err {eliminar $ _ -> {socket}; regreso; } Sub testd_connected {My ($ HEAP, $ ESTADO, $ ID) = @_ ; Pase ($ estado); regreso; } Sub testd_disconnectected {pase ($ _ ); $ poe_kernel-> POST ($ _ , 'Cierre'); regreso; } Sub testd_client_input {my ($ sender, $ id, $ entrada) = @_ ; My $ testd = $ _ -> get_heap (); $ testd-> send_to_client ($ id, $ entrada); regreso; } Requisitos: · Perl


Prueba :: Poe :: Server :: TCP Software relacionado