reactor.spawnProcess を使用する場合、これは渡されたプロトコルの読み取りチャネルにどのようにアタッチされますか? つまり、SSHProcessProtocol を渡して bash を生成しls
、応答を送信して取得できます。childDataReceived などを呼び出して情報をダンプすることは理解していますが、どうやって取得したのls
でしょうか? ここからリアクターがどのように stdin を接続しているかわかりませんhttp://twistedmatrix.com/documents/12.1.0/api/twisted.internet.interfaces.IProcessProtocol.html
1 に答える
1
これは、実装がどのように機能するかについての質問のように聞こえます。インターフェースは明示的に実装に関するものではありません。それらはAPIを記述し、そのAPIを実際に機能させるためのすべての詳細を他のコードに任せます。したがって、IProcessProtocol
インターフェースの定義/ドキュメントでは、実装がどのように機能するかについては何もわかりません。
のトランスポートには、おおよそ2つの実装があります。IProcessProtocol
これはIProcessTransport
です。トランスポートは、ツイストの世界で実際にI/Oを実行する責任があります。プロトコルは、解析とシリアル化のロジックが行われる場所であり、バイト文字列をスローするよりも高レベルのインターフェイスをアプリケーションに提供します。
POSIXの1つの実装は、にありtwisted.internet.process
ます。もう1つは、Windowsの場合ですtwisted.internet._dumbwin32proc
。これらは、実装がどのように機能するかを理解するためにソースを調べる必要があるモジュールです。
于 2012-08-03T13:43:56.610 に答える