ツイストコードの大量の枠組みではなく、十分な光です。
ツイスト学習や学習はツイストを使用する方法、の反応装置、プロトコル、factoroyの意味を知っている必要があります。
- 反応器は、撚りコア管理フレームワークです。すべてのイベントは、その後、彼はサービス、初期化工場、工場再初期化プロトコルを開くだろう、原子炉がトリガされます。一般的に使用される()、停止()、実行され callLaterを。最も簡単な手順は次のとおりです。
from twisted.internet import reactor
def hello():
print('test')
if __name__=='__main__':
reactor.callWhenRunning(hello)
reactor.run()
反応器を実行するときにhello関数は、コールバックを登録することを意味しcallWhenRunning、実行されていたであろう。こんにちは実行が走行を開始し、イベントを継続するサイクルを待ちます。
- 工場はねじれフレームを接続するための責任があり、接続が確立され、通信接続の処理が中断されます。最も簡単なクライアントの例として:
from twisted.internet import reactor,protocol
class TestProtocol(protocol.Protocol):
def connectionMade(self):
print('连接完成后会自动调用')
class TestFactory(protocol.ClientFactory):
protocol=TestProtocol
def clientConnectionFailed(self,connector,reason):
print('连接失败后调用')
reactor.stop()
def clientConnectionLost(self,connector,reason):
print('失去连接后调用')
reactor.stop()
if __name__=='__main__':
reactor.connectTCP('localhost',51234,TestFactory())
reactor.run()
connectTCP初期化TestFactoryを呼び出す場合、実行を行うときに、接続を開始するためには実際の必要はありません()、接続は、接続の損失は自動的に、接続障害関数を呼び出します(たとえば、開いていないポートとして)接続されていない自動connectionMadeを呼び出します完了し接続するために始めました関数呼び出しの損失。メイン工場制御接続の初期化プロトコルに(セッションプロトコルを実行するために必要)。
- プロトコルは、データ伝送のセッションを担当しています。例えば、我々はlineRecはeivedおよびその他の機能は、情報の受信時に処理することができ、datarecv上書きすることができます。次の手順で簡単なサーバーの過負荷lineReceivedです。
from twisted.internet import reactor,protocol
from twisted.protocols import basic
class Echo(basic.LineReceiver):
def lineReceived(self,line):
if line=='quit':
print('退出')
self.sendLine('baibai')
self.transport.loseConnection()
else:
print('返回信息')
self.sendLine('You said: '+line)
class EchoFactory(protocol.ServerFactory):
protocol=Echo
if __name__=="__main__":
port=5001
reactor.listenTCP(port,EchoFactory())
reactor.run()
操作の後、最も単純なエコーサーバですライン治療、後にポートに情報を受け取った後。
このプログラムは、マシンにいくつかの問題であり、不足していません。
原子炉のコールバックモデル
ここではツイストのこれらの日を学ぶためにいくつかのリソースは次のとおりです。
https://blog.csdn.net/bluehawksky/article/details/79814577コールバックについてのいくつかの例示
http://blog.sina.com.cn/s/blog_704b6af70100py9n.html詩プロジェクトのgithubのに基づいてツイスト書籍の章、
https://www.cnblogs.com/zhangjing0502/archive/2012/05/17/2506687.html
非常に詳細にprotrocl、工場、原子炉への説明
http://blog.sina.com.cn/s/blog_704b6af70100py9n.html最も詳細な説明、ディープの60ページのBaiduライブラリ