نمایش نتایج 1 تا 23 از 23

نام تاپیک: twisted

  1. #1

    Question twisted

    سلام خسته نباشید
    ببینید دوستان من دقیقیا نمی دونم twisted چطور کار می کند (می دونم چطوری مثلا یک پروکسی سرور بسازم) ولی دیگه نمی دونم چطوره به عنوان مثال host های کاربران رو پرینت کنم یا در header ها دستکاری کنم. توابع هاشو داخل خود سایتش گرفتم ولی نمی دونم کی و کجا باید ازش استفاده کنم ؟ ایا باید در یک تایمر سریع قرار بگیره یا ؟؟؟؟ چطور مثلا از تابع getHost استفاده کنم ؟؟ باید کلاس بسازم یا کلاس رو به جایی معرفی کنم تا تابع کار کنه یا ؟؟؟

  2. #2
    کاربر دائمی آواتار n.nowroozi
    تاریخ عضویت
    مرداد 1392
    محل زندگی
    تهران
    پست
    480

    نقل قول: twisted

    from twisted.web import proxy, http
    from twisted.internet import reactor
    from twisted.python import log
    import sys
    log.startLogging(sys.stdout)

    class ProxyFactory(http.HTTPFactory):
    protocol = proxy.Proxy

    reactor.listenTCP(8080, ProxyFactory())
    reactor.run()



    ببینید توی این مثالی که براتون گذاشته بودم شما یک factory و یک protocol دارید، شما کارهایی که میخواید با کلاینت هایی که وصل میشند انجام بدید رو باید در قسمت پروتکل مدیریت کنید همون کلاس proxy.Proxy در این مثال. حالا کاری که شما باید بکنید اینه که یک کلاس جدید تعریف کنید که از همین Proxy ارث بری کنه و بعد متدهای که مد نظرتون هست رو رونویسی کنید . حالا من کد این پروتکل رو نگاه نکردم ولی معمولا ساختار به این شکله که یک متد ConnectionMade دارند زمانی که ارتباط برقرار میشه این متد اجرا میشه شما میتونید دستوراتی که موقع برقراری ارتباط مد نظرتون هست اجرا بشند رو توی این متد قرار بدید.

  3. #3

    نقل قول: twisted

    اولا ممنونم از راهنماییتون
    ثانیا :مثلا بیاید یک کلاس بسازید که host و متد و ای پی کسی که درخواست میده رو print کنید و از متد setHost بیاید host را عوض کنید ببینم به چه شکل کار می کنه
    درسته وقتی که اطلاعاتی رو کاربر می فرسته تابع dataReceived()صدا زده میشه ولی تابعی مثل setHost شاید هیچ جای پروژه استفاده نشود ولی این توابعی از این قبیل کمکی هستند پس من چطوری میتونم تابع sethost را صدا بزنم
    آخرین ویرایش به وسیله hixnal : یک شنبه 19 آبان 1392 در 11:50 صبح

  4. #4
    کاربر دائمی آواتار n.nowroozi
    تاریخ عضویت
    مرداد 1392
    محل زندگی
    تهران
    پست
    480

    نقل قول: twisted

    اون بخش اول رو اگه وقت کردم نگاه میکنم انجام میدم براتون مینویسم الان یکم سرم شلوغه.
    در مورد سوال دوم هم وقتی کلاینت وصل شد بهت همون setHost رو که میخوای دستی خودت فراخوانی کن. مشکلی ایجاد میشه مگه؟!

  5. #5

    نقل قول: twisted

    مشکلی نیست . یعنی امتحان نکردم.

  6. #6

    نقل قول: twisted

    سلام . ببینید متد getAllHeaders روی twisted صدا بزنید

  7. #7

    نقل قول: twisted

    مشکل من اینه که نمی تونم متد هایی که اپشنال هست مثل getHost و ... رو در همون متد dataReceived که در بالا مثال زدید صدا بزنم

  8. #8
    کاربر دائمی آواتار n.nowroozi
    تاریخ عضویت
    مرداد 1392
    محل زندگی
    تهران
    پست
    480

    نقل قول: twisted

    ببخشید دوست عزیز یکم دیر شد.
    اون متدهایی که شما میخوای ازش استفاده کنی مال یک کلاس دیگه هست، شما باید از طریق اون یکی کلاس اون متد رو فراخوانی کنید دوست عزیز
    آخرین ویرایش به وسیله n.nowroozi : شنبه 25 آبان 1392 در 17:17 عصر

  9. #9

    نقل قول: twisted

    منظورتون اینه که اگه من بخوام صداش بزنم یه error + پاسخ گویی به این تاپیکمثل getHost not found می ده ؟؟؟ یه همچین اروری رو نمی ده .اگه میشه یه نمونه کدی رو بگذارید ببینم به چه شکل هست

  10. #10
    کاربر دائمی آواتار n.nowroozi
    تاریخ عضویت
    مرداد 1392
    محل زندگی
    تهران
    پست
    480

    نقل قول: twisted

    شما کد خودت رو بزار اگه برات امکان داره در اولین فرصت سعی میکنم نگاه کنم

  11. #11

    نقل قول: twisted

    ببینید اصلا من می خواهم همون طور که پروکسی باید host ها رو از روی هدر بخونه و به اون جا وصل بشه من می خواهم بهش دستور بدم که به اون هاستی که در هدر هست وصل نشو به ای پی که من براش تعریف میکنم وصل بشه . نمی دونم این قسمت باید در reactor تنظیم بشه یا ؟؟؟

  12. #12
    کاربر دائمی آواتار n.nowroozi
    تاریخ عضویت
    مرداد 1392
    محل زندگی
    تهران
    پست
    480

    نقل قول: twisted

    دوست عزیز من خودم تا حالا با این ماژولش کار نکردم اما الان که نگاه کردم اینجوری به نظر میاد که پروتکلت این کلاس هست Proxy و این کلاس ریکوئستی که میاد رو میفرسته سمت کلاس ProxyRequest اونجا فکر کنم بتونی هدرهارو تغییر بدی اگه اشتباه نکنم!

  13. #13

    نقل قول: twisted

    سلام . ببینید مشکل من با این مورد حل میشه که شما بتونید در پروکسی Header رو تغییر بدید با متد setHeaser من هر چی تلاش می کنم نمی تونم. اگه میتونید نمونه کدی رو بگذارید

  14. #14
    کاربر دائمی آواتار n.nowroozi
    تاریخ عضویت
    مرداد 1392
    محل زندگی
    تهران
    پست
    480

    نقل قول: twisted

    عزیزه من شما فقط میگی نمیشه! اون قسمت از کدت رو که مربوط به اینه بزار ببینم چیکار کردی. اونوقت اگه کمکی از دستم بر بیاد انجام میدم.

  15. #15

    نقل قول: twisted


    from twisted.web import proxy, http
    from twisted.web.http import *
    from twisted.internet import reactor
    print "Modules Loaded"
    class HTTPProxyRequest(proxy.ProxyRequest):
    def process(self):
    self.setHeader("Host","Yahoo.com")
    proxy.ProxyRequest.process(self)

    class HTTPProxy(proxy.Proxy):
    requestFactory = HTTPProxyRequest
    class ProxyFactory(http.HTTPFactory):
    protocol = HTTPProxy
    def intercept(port):
    try:
    factory = ProxyFactory()
    reactor.listenTCP(port, factory)
    reactor.run()
    except Exception as excp:
    print str(excp)
    intercept(1337)


    ببینید باید متد setHeader کار کنه . ولی کار نمی کنه . تقریبا همه ی متد هایی که اینجا وجود داره جواب میده ولی اونی که من می خوام جواب نمی ده .

  16. #16
    کاربر دائمی آواتار n.nowroozi
    تاریخ عضویت
    مرداد 1392
    محل زندگی
    تهران
    پست
    480

    نقل قول: twisted

    شیوه فراخوانیش که همینه مشکلی نداره. الان شما بعد این که set کردی خط بعدش یه getAllHeaders بگیر ببین اصلا اعمال شده یا نه؟

  17. #17

    نقل قول: twisted

    نه اعمال نشده.البته با دستور redirect هم همین مشکل بود که اعمال نمی شد ولی من بعد از دستور redirect از دستور finish استفاده کردم کار کرد ولی برای این کار نمی کنه

  18. #18
    کاربر دائمی آواتار n.nowroozi
    تاریخ عضویت
    مرداد 1392
    محل زندگی
    تهران
    پست
    480

    نقل قول: twisted

    من خودم اینجور مواقع یه ایمیل میزنم به تیم توسعه دهندش میپرسم

  19. #19

    نقل قول: twisted

    حالا تقریبا چیزی که می خواستم دستی درستش کردم . ولی باید کار می کرد

  20. #20

    نقل قول: twisted

    تابعی که بعد از این که اطلاعات از کلاینت می گیره dataReceived هست ولی نمی دونم تابعی که داره جواب درخواست کاربران رو از سرور می گیره چیه ؟ شما چیزی نمی دونید در این رابطه؟

  21. #21
    کاربر دائمی آواتار n.nowroozi
    تاریخ عضویت
    مرداد 1392
    محل زندگی
    تهران
    پست
    480

    نقل قول: twisted

    نمیدونم اما فکر کنم توی کلاس request تو قسمت finish باشه

  22. #22

    نقل قول: twisted

    هر چی میرم جلوتر بیشتر گیر میکنم . حالا با مشکلات بیشتری برخوردم . اگه وقت گذاشته بودم همون مدیریت نخ ها روی یا گرفته بودم دیگه مشکلی نداشتم.تا این که twisted رو یاد بگیرم.

  23. #23

    نقل قول: twisted

    اگه ایمیل تیم پایتون رو دارین بگذارین ممنون میشم

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •