מבחן :: POE :: שרת :: TCP

רכיב POE מספק שירותי שרת TCP למקרים מבחן
הורד עכשיו

מבחן :: POE :: שרת :: TCP דירוג וסיכום

פרסומת

  • Rating:
  • רישיון:
  • Perl Artistic License
  • מחיר:
  • FREE
  • שם המפרסם:
  • Chris Williams
  • אתר האינטרנט של המוציא לאור:
  • http://search.cpan.org/~bingos/

מבחן :: POE :: שרת :: TCP תגים


מבחן :: POE :: שרת :: TCP תיאור

מרכיב POE במתן שירותי שרת TCP עבור מקרי מבחן המבחן :: POE :: השרת :: מודול TCP הוא מרכיב POE המספק מסגרת שרת TCP להכללה מקרה מבחן רכיב לקוח, במקום לגלגל שלך own.Once רשום עם הרכיב, מושב יקבל אירועים הקשורים כדי מתחבר לקוח, מתנתק, קלט ופלט סמוק. כל האירועים הללו יתייחסו מזהה לקוח ייחודי אשר עשוי לשמש לתקשורת עם מרכיב בעת שליחת נתונים אל הלקוח או ניתוק לקוח לשרת הד connection.SYNOPSISA מאוד פשוטה עם כניסה של בקשות על ידי כל לקוח: שימוש מחמירים; להשתמש POE; השימוש מבחן :: POE :: שרת :: TCP; POE :: פעילויות באתר> ליצור (package_states => ,],); $ poe_kernel-> הפעלה (); צא 0; _start תת {# Spawn בשרת Test :: POE :: שרת :: TCP. _ $ -> {testd} = מבחן :: POE :: שרת :: TCP-> שרץ (כתוב => '127.0.0.1', יציאה => 0,); לַחֲזוֹר; תת} testd_connected {שלי (ערימה $, $ id) = @_ ; # לקוח מחובר את המזהה הייחודית נמצאת # ARG0 צור arrayref ריק עבור לקוח זה על * שלנו * ערימת $ ערימה -> {clients} -> {$ id =} []; לַחֲזוֹר; } תת testd_client_input {שלי (kernel $, $ הערימה, $ השולח, $ id, $ קלט) = @_ ; # הלקוח שלח לנו קו של קלט # מאפשר לאחסן אותו לדחוף @ {$ ערימה -> {clients} -> {$ id}, $ קלט; # אוקיי, אנחנו שרת הד כך מאפשר לשלוח אותו בחזרה # הלקוח אנו יודעים השולח אז תמיד יכול להשיג את האובייקט בשרת. שלי $ testd = $ sender-> get_heap (); testd- $> send_to_client (id, $ קלט); # או אפילו # $ sender-> get_heap () -> send_to_client ($ id, $ קלט); # לחלופין שיכולנו רק בחזרה פוסט לשולח # $ בגרעין> פוסט ($ השולח, 'send_to_client', $ id, $ קלט); לַחֲזוֹר; תת} testd_disconnected {שלי (ערימה $, $ id) = @_ ; # לקוח מנותק מכול סיבה # אנחנו צריכים לפנות שטח אחסון מחיקת ערימת $ שלנו -> {clients} -> {$ id}; לַחֲזוֹר; } בעזרת מודול בתוך testcase: שימוש מחמירים; שימוש מבחן :: יותר; QW השימוש POE (גלגל :: SocketFactory גלגל :: מסנן ReadWrite :: Line); השימוש מבחן :: POE :: שרת :: TCP; בדיקות תוכנית => 5; @data שלי = ( "זהו מבחן", "זהו עוד מבחן", "זהו המבחן האחרון",); POE :: פעילויות באתר> ליצור (package_states => ,], ערימה => {נתונים => \ @data,},); $ poe_kernel-> הפעלה (); צא 0; תת _start {$ _ -> {testd} = מבחן :: POE :: שרת :: TCP-> שרצים (כתובת => '127.0.0.1', יציאת => 0,); לַחֲזוֹר; תת} testd_registered {שלי (ערימה $, $ אובייקט) = @_ ; ערימת $ -> {יציאה} = $ אובייקט נמל> (); $ ערימה -> {מפעל} = POE :: גלגל :: SocketFactory-> חדשות (RemoteAddress => '127.0.0.1', RemotePort => $ ערימה -> {יציאת}, SuccessEvent => '_sock_up', FailureEvent => ' _sock_fail",); לַחֲזוֹר; } תת _sock_up {שלי ($ הערימה, $ socket) = @_ ; למחוק $ ערימה -> {מפעל}; ערימה $ -> {שקע} = POE :: גלגל :: ReadWrite-> חדשות (ידית => $ שקע, InputEvent => '_sock_in', ErrorEvent => '_sock_err',); ערימה $ -> {שקע} -> put ($ ערימה -> {נתוני} -> ); לַחֲזוֹר; תת} _sock_fail {שלי ערימה $ = $ _ ; למחוק $ ערימה -> {מפעל}; ערימת $ -> {testd} -> כיבוי (); לַחֲזוֹר; _sock_in תת} {שלי ($ הערימה, $ קלט) = @_ ; נתוני $ שלי = משמרת @ {$ ערימה -> {נתון}}; OK (נתוני $ EQ קלט $, 'נתונים מתאימים'); אלא אם כן (סקלר @ {$ ערימה -> {נתוני}}) {ערימה $ מחיקה -> {שקע}; לַחֲזוֹר; } $ ערימה -> {שקע} -> put (ערימה $ -> {נתוני} -> ); לַחֲזוֹר; תת} _sock_err {מחיקים $ _ -> {שקע}; לַחֲזוֹר; תת} testd_connected {שלי ($ הערימה, $ המדינה, $ id) = @_ ; עובר (מדינת $); לַחֲזוֹר; תת} testd_disconnected {pass ($ _ ); $ Poe_kernel-> פוסט ($ _ , 'כיבוי'); לַחֲזוֹר; תת} testd_client_input {שלי (השולח $, $ id, $ קלט) = @_ ; שלי $ testd = $ _ -> get_heap (); testd- $> send_to_client (id, $ קלט); לַחֲזוֹר; } דרישות: · פרל


מבחן :: POE :: שרת :: TCP תוכנה קשורה