سؤال

أرغب في وضع خادم TCP بسيط باستخدام Python و Twisted.

يبدأ الخادم وينتظر الاتصال - لدي بالفعل تطبيق عميل - غير بيثون. بمجرد إجراء الاتصال ، يبدأ الخادم في إرسال البيانات في بعض الفاصل الزمني (على سبيل المثال 1 ثانية).

يقرأ الخادم البيانات من ملف ثابت (سجل في وقت واحد) ، يجب أن أكون قادرًا على معرفة هذا الجزء.

أفترض أنني سأستخدم منتج الدفع للبدء في دفع البيانات بمجرد توصيل العميل.

لدي خادم TCP بسيط مع مصنع في ملتوية ويمكنني أن أتفاعل مع ConnectionMade/Datareceived وما إلى ذلك ولكن لا يمكنني التعرف خارج كيفية توصيل منتج الدفع.

أي شخص يعرف أي أمثلة تظهر منتج الدفع مع خادم TCP في Twisted؟

هل كانت مفيدة؟

المحلول

ماذا عن شيء مبسط مثل:

thedata = '''
Questa mattina
mi son svegliato
o bella ciao, bella ciao,
bella ciao, ciao, ciao
questa mattina
mi son svegliato
ho trovato l'invasor!
'''.splitlines(True)

class Push(protocol.Protocol):
    """This is just about the simplest possible protocol"""
    def connectionMade(self):
        for line in thedata:
          if not line or line.isspace():
            continue
          self.transport.write(line)
          time.sleep(1.0)
        self.transport.loseConnection()

يحتوي هذا على بيانات مشفرة ، لكنك تقول إن قراءته من ملف بدلاً من ذلك ليس مشكلتك. إذا تمكنت من إخبارنا بما هو الخطأ في هذا "Push Server" المبسط المفرط ، فربما يمكننا تقديم مساعدة أفضل!-)

نصائح أخرى

هنا هو مثال كامل لمنتج الدفع. تمت إضافته إلى SVN الملتوية كمثال.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top