Test :: Poe :: Server :: TCP

Een POE-component met TCP-serverdiensten voor testcases
Download nu

Test :: Poe :: Server :: TCP Rangschikking & Samenvatting

Advertentie

  • Rating:
  • 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