Test :: Poe :: Server :: TCPEen POE-component met TCP-serverdiensten voor testcases | |
Download nu |
Test :: Poe :: Server :: TCP Rangschikking & Samenvatting
Advertentie
- Vergunning:
- Perl Artistic License
- Prijs:
- FREE
- Naam uitgever:
- Chris Williams
- Uitgever website:
- http://search.cpan.org/~bingos/
Test :: Poe :: Server :: TCP Tags
Test :: Poe :: Server :: TCP Beschrijving
Een POE Component verstrekken van TCP server diensten voor testgevallen De Test :: POE :: Server :: TCP module is een POE component die een TCP server kader vormt voor opname in clientcomponent testcases, in plaats van te rollen uw own.Once geregistreerd bij het onderdeel, zal een sessie gebeurtenissen die verband ontvangen client verbindt, onderbrekers, invoer en uitvoer gespoeld. Elk van deze gebeurtenissen zal verwijzen naar een unieke cliënt ID die kunnen worden gebruikt in verbinding met de component bij het verzenden van data naar de cliënt of een cliënt connection.SYNOPSISA eenvoudige echo server loskoppelen met het inloggen van verzoeken van elke klant: use strict; gebruik POE; gebruik Test :: POE :: Server :: TCP; POE :: Session> create (package_states => ]); $ poe_kernel-> run (); afslag 0; sub _start {# Spawn de Test :: POE :: Server :: TCP server. $ _ -> {testd} = Test :: POE :: Server :: TCP-> spawn (adres => '127.0.0.1', port => 0); opbrengst; } Sub testd_connected {mijn ($ hoop, $ id) = @_ ; # Een client die het unieke ID is in arg0 # Maak een leeg arrayref voor deze klant op * onze * heap $ heap -> {clients} -> {$ id} = []; opbrengst; } Sub testd_client_input {mijn ($ kernel $ hoop, $ afzender, $ id, $ input) = @_ ; # De klant stuurde ons een lijn van de input # laat slaan duwen @ {$ heap -> {clients} -> {$ id}, $ ingang; # Oke, we zijn een echo server zo laat terug te sturen naar de client # We weten dat de afzender kan dus altijd de server object te verkrijgen. mijn $ testd = $ verzender-> get_heap (); $ Testd-> send_to_client ($ id, $ input); # Of zelfs # $ verzender-> get_heap () -> send_to_client ($ id, $ input); # Als alternatief we konden gewoon bericht terug naar de afzender # $ kernel-> post ($ afzender, 'send_to_client', $ id, $ input); opbrengst; } Sub testd_disconnected {mijn ($ hoop, $ id) = @_ ; # Client losgekoppeld om welke reden # We moeten vrijmaken onze opslag delete $ heap -> {clients} -> {$ id}; opbrengst; } Met behulp van de module in een testcase: use strict; gebruik Test :: Meer; gebruik POE qw (Wheel :: socketFactory Wheel :: ReadWrite Filter :: Line); gebruik Test :: POE :: Server :: TCP; Plannen proeven => 5; mijn @data = ( 'Dit is een test', 'Dit is een test', 'Dit is de laatste test',); POE :: Session> create (package_states => ], heap => {data => \ @data,}); $ poe_kernel-> run (); afslag 0; sub _start {$ _ -> {testd} = Test :: POE :: Server :: TCP-> spawn (adres => '127.0.0.1', port => 0); opbrengst; } Sub testd_registered {mijn ($ heap, $ object) = @_ ; $ Heap -> {poort} = $ object-> port (); $ Heap -> {fabriek} = POE :: Wheel :: SocketFactory-> new (RemoteAddress => '127.0.0.1', netwerk_poort => $ heap -> {poort}, SuccessEvent => '_sock_up', FailureEvent => ' _sock_fail'); opbrengst; } Sub _sock_up {mijn ($ hoop, $ socket) = @_ ; $ Heap verwijderen -> {fabriek}; $ Heap -> {socket} = POE :: Wheel :: ReadWrite-> new (Handle => $ socket, InputEvent => '_sock_in', ErrorEvent => '_sock_err',); $ Heap -> {socket} -> put ($ heap -> {data} -> ); opbrengst; } Sub _sock_fail {mijn $ hoop = $ _ ; $ Heap verwijderen -> {fabriek}; $ Heap -> {testd} -> shutdown (); opbrengst; } Sub _sock_in {mijn ($ heap, $ input) = @_ ; mijn $ data = shift @ {$ heap -> {data}}; ok ($ ingang eq $ data, 'Data gematched'); tenzij (scalaire @ {$ heap -> {data}}) {delete $ heap -> {socket}; opbrengst; } $ Heap -> {socket} -> put ($ heap -> {data} -> ); opbrengst; } Sub _sock_err {delete $ _ -> {socket}; opbrengst; } Sub testd_connected {mijn ($ hoop, $ staat, $ id) = @_ ; Pass ($ toestand); opbrengst; } Sub testd_disconnected {pas ($ _ ); $ Poe_kernel-> post ($ _ , 'shutdown'); opbrengst; } Sub testd_client_input {mijn ($ afzender, $ id, $ input) = @_ ; mijn $ testd = $ _ -> get_heap (); $ Testd-> send_to_client ($ id, $ input); opbrengst; } Vereisten: · Perl
Test :: Poe :: Server :: TCP Gerelateerde software
NET :: CIDR :: LOEKEN
Een PERL-klasse die een opzoektabel indexeert met IPv4-netwerken of hosts ...
171
Html :: Defang
Reinigt HTML evenals CSS van scripting en andere uitvoerbare inhoud en neutraliseert XSS-aanvallen ...
162