Test :: poe :: server :: tcp

Eine PoE-Komponente, die TCP-Serverdienste für Testfälle bereitstellt
Jetzt downloaden

Test :: poe :: server :: tcp Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • Perl Artistic License
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Chris Williams
  • Website des Verlags:
  • http://search.cpan.org/~bingos/

Test :: poe :: server :: tcp Stichworte


Test :: poe :: server :: tcp Beschreibung

Eine PoE-Komponente, die TCP-Serverdienste für Testfälle bereitstellt Die Test: Zum Client verbindet, trennt, trennte, eingegebene und gespülte Ausgabe. Jede dieser Ereignisse bezieht sich auf eine eindeutige Client-ID, die beim Senden von Daten an den Client in Verbindung mit der Komponente verwendet werden kann oder einen Client-Anschluss trennen kann. Synopsisa sehr einfacher Echo-Server mit der Protokollierung von Anforderungen von jedem Client: Verwenden Sie PoE; Verwenden Sie Test :: poE :: server :: tcp; PoE :: session-> erstellen (paket_states => ,],); $ poe_kernel-> run (); Ausfahrt 0; SUB _START {# spawn test :: poe :: server :: tcp-server. $ _ -> {testd} = test :: poE :: server :: tcp-> spawn (adresse => '127.0.0.1', Port => 0,); Rückkehr; } sub testd_connected {my ($ heap, $ id) = @_ ; # Ein Client angeschlossen Die eindeutige ID ist in Arg0 # Erstellen eines leeren ArrayRefs für diesen Client auf * unserem * heap $ heap -> {Clients} -> {$ ID} = []; Rückkehr; } sub testd_client_input {MY ($ Kernel, $ Heap, $ Sender, $ ID, $ INPUT) = @_ ; # Der Client hat uns eine Zeile von INPUT # gesendet # LAST SPORE IT PUSH @ {$ heap -> {Clients} -> {$ ID}, $ Input; # Okay, wir sind ein Echo-Server, somit können Sie es an den Client # zurücksenden, den wir kennen, den Sender kennen, kann das Server-Objekt immer erhalten. mein $ testd = $ sender-> get_heap (); $ testd-> send_to_client ($ ID, $ eingegeben); # Oder sogar # $ sender-> get_heap () -> send_to_client ($ ID, $ eingegeben); # Alternativ können wir einfach wieder an den Absender zurück posten # $ kernel-> post ($ sender, 'send_to_client', $ ID, $ eingegeben); Rückkehr; } sub testd_disconted {My ($ Heap, $ ID) = @_ ; # Client aus welchem Grund auch immer getrennt # wir müssen unseren Speicher freimachen $ heap -> {-Clients} -> {$ ID}; Rückkehr; } Verwenden des Moduls in einem Testfall: Verwenden Sie streng; Verwenden Sie den Test :: mehr; Verwenden Sie POE QW (Rad :: Socketfactory Wheel :: ReadWrite Filter :: Zeile); Verwenden Sie Test :: poE :: server :: tcp; Plantests => 5; Mein @Data = ('Dies ist ein Test', 'Dies ist ein weiterer Test', 'Dies ist der letzte Test',); PoE :: session-> erstellen (paket_states => ,],], Heap => {data => \ @Data,},); $ poe_kernel-> run (); Ausfahrt 0; sub _start {$ _ -> {testd} = test :: poe :: server :: tcp-> spaichen (adressen => '127.0.0.1', port => 0,); Rückkehr; } sub testd_registered {My ($ Heap, $ Object) = @_ ; $ heap -> {Port} = $ object-> port (); $ heap -> {factory} = poE :: rad :: socketfactory-> neu (remoteaddress => '127.0.0.1', remoteport => $ heap -> {Port}, selgmentevent => '_sock_up', failureevent => ' _sock_fail ',); Rückkehr; } SUB _SOCK_UP {MY ($ Heap, $ Socket) = @_ ; löschen $ heap -> {factory}; $ Heap -> {Sockel} = PoE :: Wheel :: ReadWrite-> NEU (Griff => $ Buchse, EingabeEvent => '_sock_in', errorEvent => '_sock_err',); $ heap -> {Sockel} -> Put ($ Heap -> {Daten} -> ); Rückkehr; } sub _sock_fail {mein $ heap = $ _ ; löschen $ heap -> {factory}; $ heap -> {testd} -> Herunterfahren (); Rückkehr; } sub _sock_in {My ($ Heap, $ Input) = @_ ; meine $ data = shift @ {$ heap -> {data}}; OK ($ Input EQ $ Daten, 'Daten, die "entsprechen"); es sei denn (Skalar @ {$ heap -> {data}}) {löschen Sie $ heap -> {Buchse}; Rückkehr; } $ heap -> {Sockel} -> Put ($ Heap -> {Daten} -> ); Rückkehr; } sub _sock_err {löschen $ _ -> {Buchse}; Rückkehr; } sub testd_connected {My ($ Heap, $ State, $ ID) = @_ ; Pass ($ staat); Rückkehr; } sub testd_disconted {pass ($ _ ); $ poe_kernel-> post ($ _ , 'Herunterfahren'); Rückkehr; } sub testd_client_input {MY ($ Sender, $ ID, $ $ eingegeben) = @_ ; meine $ testd = $ _ -> get_heap (); $ testd-> send_to_client ($ ID, $ eingegeben); Rückkehr; } Anforderungen: · Perl.


Test :: poe :: server :: tcp Zugehörige Software