POE :: Component :: Server :: NNTP

مكون PoE الذي يوفر وظيفة خادم NNTP
التحميل الان

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

الإعلانات

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

POE :: Component :: Server :: NNTP العلامات


POE :: Component :: Server :: NNTP وصف

مكون PoE الذي يوفر وظيفة خادم NNTP POE :: Component :: Server :: NNTP هو وحدة بيرل التي تنفذ RFC 977 http://www.faqs.org/rfcs/rfc977.html خادم NNTP. إنه مكون مصاحب إلى PoE :: Commentent :: Client :: NNTP الذي ينفذ وظيفة عميل NNTP.You تفرخ مكون خادم NNTP، قم بإنشاء جلسات PoE الخاصة بك ثم تسجيل جلستك لتلقي الأحداث. عندما يقوم العملاء بتوصيل أو قطع الاتصال أو إرسال أوامر بروتوكول NNTP صالحة ستحصل على حدث ومعرف عميل فريد من نوعه. تقوم بذلك ثم بتحليل الأوامر المعينة وإرسالها مرة أخرى استجابات NNTP المعمول بها. لا يقوم هذا المكون بتطبيق قاعدة بيانات الأخبار وعلى هذا النحو ليس بحد ذاته تطبيق DAEMON الكامل NNTP.Syopsis استخدم صارما؛ استخدم PoE qw (مكون :: خادم :: NNTP)؛ مجموعتي بينما () {chomp؛ دفع @ {$ المجموعات {'perl.cpan.testers'} -> {''}}، $ _؛ } بلدي $ nntpd = poe :: component :: خادم :: NNTP-> تفرخ (الاسم المستعار => 'nntpd'، نشر => 0، Port => 10119،)؛ POE :: Session-> إنشاء (package_states => ،]، خيارات => {أثر => 0}،)؛ $ poe_kernel-> تشغيل ()؛ الخروج 0؛ Sub _Start {بلدي (kernel $ kernel، $ heap) = @ _ ؛ $ Heap -> {clients} = {}؛ $ kernel-> المشاركة ('nntpd'، "سجل"، "الكل")؛ إرجاع؛ } sub nntpd_connection {my (kernel $ kernel، $ heap، $ client_id) = @ _ ؛ $ Heap -> {العملاء} -> {$ client_id} = {}؛ إرجاع؛ } sub nntpd_disconnected {بلدي (kernel $ kernel، $ heap، $ client_id) = @ _ ؛ حذف كومة $ -> {العملاء} -> {$ client_id}؛ إرجاع؛ } sub nntpd_cmd_slave {بلدي (kernel $ kernel، $ المرسل، $ client_id) = @ _ ؛ $ kernel-> المشاركة (المرسل $، "send_to_client"، $ client_id، "202 حالة الرقيق المذكورة")؛ إرجاع؛ } Sub NNTPD_CMD_POST {بلدي (kernel $ kernel، $ المرسل، $ client_id) = @ _ ؛ Kernel-> Post ($ المرسل، "Send_to_client"، $ client_id، "440 نشر غير مسموح")؛ إرجاع؛ } sub nntpd_cmd_ihave {بلدي (kernel $ kernel، $ المرسل، $ client_id) = @ _ ؛ Kernel-> مشاركة ($ المرسل، "Send_to_client"، $ client_id، '435 مقال غير مطلوب')؛ إرجاع؛ } sub nntpd_cmd_newnews {بلدي (kernel $ kernel، $ المرسل، $ client_id) = @ _ ؛ $ kernel-> مشاركة ($ المرسل، "send_to_client"، $ client_id، "230 قائمة من المقالات الجديدة")؛ Kernel-> Post ($ المرسل، "send_to_client"، $ client_id، ".")؛ إرجاع؛ } sub nntpd_cmd_newgroups {بلدي (kernel $ kernel، $ المرسل، $ client_id) = @ _ ؛ $ Kernel-> Post ($ المرسل، "Send_to_client"، $ client_id، '231 قائمة من مجموعات الأخبار الجديدة يتبع ")؛ Kernel-> Post ($ المرسل، "send_to_client"، $ client_id، ".")؛ إرجاع؛ } Sub nntpd_cmd_list {My (Kernel $ Kernel، $ المرسل، $ client_id) = @ _ ؛ kernel-> post (المرسل $، "send_to_client"، يلي client_id، "215 قائمة من مجموعات الأخبار")؛ foreach foreach مجموعتي $ (Keys المجموعات) {My $ Reply = Join ''، مجموعة $، مفاتيح العددية {$ المجموعات {$ group}}، 1، 'n'؛ kernel-> post ($ المرسل، "send_to_client"، $ client_id، الرد $)؛ } kernel-> post ($ المرسل، "send_to_client"، $ client_id، '.')؛ إرجاع؛ } Sub NNTPD_CMD_GROUP {My (Kernel $ kernel، $ المرسل، $ client_id، $ group) = @ _ ؛ ما لم يكن (مجموعة $ أو موجودة $ مجموعات $ {LC $ Group}) {$ kernel-> post ($ المرسل، 'send_to_client'، $ client_id، '411 لا توجد مجموعة من هذه الأخبار ")؛ إرجاع؛ } مجموعة $ = مجموعة LC $؛ $ kernel-> مشاركة ($ المرسل، 'send_to_client'، $ client_id، "2111 $ 1 $ مجموعة مختارة")؛ $ _ -> {العملاء} -> {$ client_id} = {group => $ group}؛ إرجاع؛ } Sub NNTPD_CMD_Article {My (Kernel $ kernel، $ المرسل، $ client_id، مقالة $) =_ ؛ مجموعتي $ = 'perl.cpan.testers'؛ إذا (! $ مقالة و! حدد $ _ -> {العملاء} -> {$ client_id} -> {group}) {$ kernel-> post ($ المرسل، 'send_to_client'، $ client_id، '412 لا أخبار المجموعة المحددة ")؛ إرجاع؛ } $ المادة = 1 ما لم $ إذا كان (مقالة $! ~ / ^ $ / و $ المادة NE '1') {$ kernel-> post ($ المرسل، 'send_to_client'، $ client_id، '423 لا يوجد رقم مقالة ")؛ إرجاع؛ } إذا (مقالة $ = ~ / ^ $ / ') إرجاع؛ } foreach بلدي MSG_ID (مفاتيح {$ {$ {$ group} {$ group}}) {$ kernel-> post ($ المرسل، 'send_to_client'، $ client_id، "2201 $ msg_id المادة المستردة - رئيس والجسم متابعة")؛ $ kernel-> post ($ المرسل، 'send_to_client'، $ client_id، $ _) ل @ {$ المجموعات {$ group} -> {$ msg_id}}؛ Kernel-> Post ($ المرسل، "send_to_client"، $ client_id، ".")؛ } إرجاع؛ } متطلبات: perl.


POE :: Component :: Server :: NNTP برامج ذات صلة