اختبار :: POE :: Server :: TCP

مكون PoE يوفر خدمات خادم TCP لحالات الاختبار
التحميل الان

اختبار :: POE :: Server :: TCP الترتيب والملخص

الإعلانات

  • Rating:
  • رخصة:
  • Perl Artistic License
  • السعر:
  • FREE
  • اسم الناشر:
  • Chris Williams
  • موقع ويب الناشر:
  • http://search.cpan.org/~bingos/

اختبار :: POE :: Server :: TCP العلامات


اختبار :: POE :: Server :: TCP وصف

مكون PoE يوفر خدمات خادم TCP لحالات الاختبار الاختبار :: POE :: Server: TCP الوحدة النمطية هو مكون PoE يوفر إطار خادم TCP لإدراجه في حالات اختبار مكونات العميل، بدلا من الاضطرار إلى لفة الخاص بك. لن يتم تسجيلها في المكونات إلى العميل يتصل، قطع الاتصال والإدخال والإخراج المسحوب. سيشير كل من هذه الأحداث إلى معرف عميل فريد يمكن استخدامه في التواصل مع المكون عند إرسال البيانات إلى العميل أو قطع اتصال اتصال عميل. Synopsisa بخادم ECHO بسيط للغاية مع تسجيل الطلبات من قبل كل عميل: استخدم صارما؛ استخدام poe؛ استخدم الاختبار :: POE :: Server :: TCP؛ poe :: session-> إنشاء (package_states => ،]،)؛ $ poe_kernel-> تشغيل ()؛ الخروج 0؛ Sub _Start {# تفرخ الاختبار :: خادم POE :: خادم TCP. $ _ -> {testd} = اختبار :: POE :: Server :: TCP-> Spawn (العنوان => '127.0.0.1'، Port => 0،)؛ إرجاع؛ } TestD_Connected {My ($ Heap، ID $) = @ _ ؛ # عميل متصل بالمعرف الفريد هو في Arg0 # قم بإنشاء ArrayRef فارغ لهذا العميل على * لدينا * كومة كومة كومة -> {العملاء} -> {$ id} = []؛ إرجاع؛ } TestD_Client_input} # عميل أرسل لنا خط الإدخال # يتيح تخزينه {{$ heap -> {clients} -> {$ id}، $ المدخلات؛ # حسنا، نحن خادم صدى لذلك يتيح إرساله مرة أخرى إلى العميل # نحن نعرف المرسل حتى يمكنهم دائما الحصول على كائن الخادم. بلدي TestD $ = $ المرسل-> get_heap ()؛ $ testd-> send_to_client (معرف $، إدخال $)؛ # أو حتى # $ المرسل-> get_heap () -> send_to_client (معرف $، إدخال $)؛ # بدلا من ذلك يمكننا نشر فقط مرة أخرى إلى المرسل # $ kernel-> post ($ المرسل، "send_to_client"، معرف $، إدخال $)؛ إرجاع؛ } TESTD_DISCONECTENTENTENTENTED {My ($ Heap، ID $) =_ ؛ # العميل غير متصل بأي سبب من الأسباب # نحتاج إلى تحرير التخزين لدينا حذف $ كومة -> {العملاء} -> {$ id}؛ إرجاع؛ } باستخدام الوحدة النمطية في اختبار: استخدم صارما؛ استخدام الاختبار :: المزيد؛ استخدم PoE qw (عجلة :: MocketFactory Wheel :: ReadWrite Filter :: LINE)؛ استخدم الاختبار :: POE :: Server :: TCP؛ اختبارات الخطة => 5؛ MyData = ("هذا اختبار"، "هذا اختبار آخر"، "هذا هو الاختبار الأخير،)؛ POE :: Session-> إنشاء (Package_states => -> {testd} = اختبار :: POE :: Server :: TCP-> Spawn (العنوان => '127.0.0.1'، Port => 0،)؛ إرجاع؛ } TestD_Registered {My ($ كومة، كائن $) =_ ؛ $ Heap -> {Port} = Object Object-> Port ()؛ $ heap -> {factory} = poe :: wheel :: socketFactory-> جديد (remoteaddress => '127.0.0.1'، remjectport => $ heap -> {port}، screachevent => '_sock_up'، failureevent => ' _sock_fail '،)؛ إرجاع؛ } Sub _sock_up {My ($ Heap، $ المقبس $) = @ _ ؛ حذف كومة $ -> {factory}؛ $ heap -> {socket} = poe :: wheel :: readwrite-> جديد (مقبض => مقبس $، inputeventvent => '_sock_in'، erorevent => '_sock_err'،)؛ كومة $ -> {socket} -> وضع ($ heap -> {data} -> )؛ إرجاع؛ } Sub _sock_fail {My Heap $ = $ _ ؛ حذف كومة $ -> {factory}؛ $ heap -> {testd} -> اغلاق ()؛ إرجاع؛ } Sub _sock_in {بلدي (كومة كومة $، إدخال $) =_ ؛ بياناتي $ = Shift @ {$ heap -> {data}}؛ طيب ($ الإدخال EQ $ بيانات $، "البيانات المتطابقة")؛ ما لم يكن (scalar @ {$ heap -> {data}}) {حذف $ heap -> {socket}؛ إرجاع؛ } كومة $ -> {socket} -> ضع ($ heap -> {data} -> )؛ إرجاع؛ } sub _sock_err {delete $ _ -> {المقبس}؛ إرجاع؛ } testd_connected {بلدي (كومة كومة $، ولاية دولار $، معرف $) = @ _ ؛ تمر (دول دولار)؛ إرجاع؛ } TestD_Discon المحرك $ poe_kernel-> المشاركة ($ _ ، "إيقاف التشغيل")؛ إرجاع؛ } sub testd_client_input {my ($ المرسل، ID $، إدخال $) =_ ؛ بلدي TestD $ = $ _ -> get_heap ()؛ $ testd-> send_to_client (معرف $، إدخال $)؛ إرجاع؛ } متطلبات: perl.


اختبار :: POE :: Server :: TCP برامج ذات صلة