什么是Twisted?网络引擎?
生活随笔
收集整理的這篇文章主要介紹了
什么是Twisted?网络引擎?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
簡介
Twisted是基于事件驅動的網絡引擎框架,支持Python2.7和3.3+。它包括很多不同的模塊,如:
- twisted.web:HTTP客戶和服務端,HTML模板,和一個WSGI服務器
- twisted.conch:基于SSHv2和Telnet協議的的客戶端,服務器和終端模擬器
- twisted.words:基于IRC,XMPP和其他IM協議的客戶端和服務器
- twisted.mail:基于IMAPv4,POP3,SMTP的客戶端和服務器
- twisted.positioning:和NMEA(國際海上電子協會)兼容的GPS接收者通信的工具
- twisted.names:DNS客戶端和工具可用于構建自己的DNS服務器
- twisted.trial:和基于Twisted的代碼高度整合的單元測試框架
twisted支持所有主流的事件輪詢機制:select(所有平臺)、poll(大部分POSIX平臺)、epoll(Linux)、kqueue(FreeBSD,OSX)、OCP(Windows)和各種GUI事件輪詢機制(GTK+2/3、QT、wxWidgets)。第三方的reactors也可以加入到twisted中來支持額外的事件輪詢機制。
代碼示例
- 回聲服務器
Twisted可以輕松實現自定義網絡應用程序。這是一個TCP服務器,它回顯寫入它的所有內容:
來自 twisted.internet 導入協議, reactor ,端點class Echo (協議。協議):def dataReceived (self , data ):self 。運輸。寫(數據)類 EchoFactory (協議。廠):DEF buildProtocol (自,地址):返回回聲()端點。serverFromString ( reactor , “tcp:1234” )。listen ( EchoFactory ()) reactor 。run ()
建議詳細內容去看官方開發平臺https://twistedmatrix.com/documents/current/core/examples/
示例
簡單的Echo服務器和客戶端
simpleclient.py?- 簡單的TCP客戶端simpleserv.py?- 簡單的TCP echo服務器
聊天
chatserver.py?- 顯示如何在客戶端之間進行通信
回聲服務器和客戶端變體
echoserv.py?- 簡單TCP回送服務器上的變體echoclient.py?- 簡單TCP客戶端上的變體echoserv_udp.py?- 最簡單的UDP服務器echoclient_udp.py?- 簡單的UDP客戶端echoserv_ssl.py?- 簡單的SSL服務器echoclient_ssl.py?- 簡單的SSL客戶端
AMP服務器和客戶端變體
ampserver.py?- 使用AMP做數學ampclient.py?- 使用AMP做數學
透視經紀人
pbsimple.py?- 最簡單的PB服務器pbsimpleclient.py?- 最簡單的PB客戶端pbbenchclient.py?- 基準客戶pbbenchserver.py?- 基準測試服務器pbecho.py?- 使用登錄的echo服務器pbechoclient.py?- 使用登錄回顯客戶端pb_exceptions.py?- PB上的例外情況pbgtk2.py?- 將GTK2與PB一起使用的示例pbinterop.py?- 展示PB支持的各種類型bananabench.py?- 香蕉基準
信用
cred.py?- 使用內存中的用戶名/密碼數據庫對用戶進行身份驗證dbcred.py?- 使用數據庫后端對用戶進行身份驗證
GUI?
wxdemo.py?- wxPython與Twisted集成的演示pbgtk2.py?- 將GTK2與PB一起使用的示例pyuidemo.py?- PyUI
FTP示例
ftpclient.py?- 使用FTP客戶端的示例ftpserver.py- 創建一個FTP服務器,為工作目錄中的匿名用戶提供文件,并為經過身份驗證的用戶提供文件/home。
記錄
twistd-logging.tac?- 使用ILogObserver的日志示例testlogging.py?- 使用twisted.python.log將錯誤記錄到標準輸出rotatinglog.py?- 日志文件輪換的示例
POSIX特定技巧
sendfd.py,recvfd.py- 通過UNIX域套接字發送和接收文件描述符
雜項
shaper.py?- 限制Web服務器速率的示例stdiodemo.py?- 使用stdio,Deferreds,LineReceiver和twisted.web.client的示例。ptyserv.py?- 通過TCP在偽終端中提供shellcourier.py?- 與Courier郵件過濾器界面連接的示例longex.py?- 在Twisted中很好地進行任意長時間計算的示例longex2.py?- 使用發電機進行長時間的計算stdin.py?- 從標準輸入一次讀取一條線而不阻塞反應器streaming.py?- 推送生產者/消費者系統的示例filewatch.py?- 一次將一行文件的內容寫入標準輸出shoutcast.py?- 示例Shoutcast客戶端wxacceptance.py?- wxreactor的驗收測試postfix.py?- 測試PostfixTCPMapServer的應用程序udpbroadcast.py?- 使用UDP進行廣播tls_alpn_npn_client.py?- 使用NPN和ALPN在客戶端進行TLS下一協議協商的示例。tls_alpn_npn_server.py?- 使用NPN和ALPN在服務器端進行TLS下一協議協商的示例。
總結
以上是生活随笔為你收集整理的什么是Twisted?网络引擎?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CF1156F. Card Bag
- 下一篇: 引用 病毒是怎么命名的?教你认识病毒命名