問題タブ [twisted.internet]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
10642 参照

python - twisted.internet.error.CannotListenError: Couldn't listen on any:8081: [Errno 98] Address already in use の解決方法

ポート 8080 で実行されるねじれた python サーバーがあり、このサーバーで実行されるさまざまな API を作成しました。したがって、これらすべての API を単一のポート番号で実行したいと考えています。しかし、同じポートを使用しようとすると、ex : 8081 のすべての API が使用され、Python インタープリターを使用して同時に実行されます。その時点で、次のエラーが表示されます: twisted.internet.error.CannotListenError: Couldn't listen on any:8081: [Errno 98] アドレスは既に使用されています。私はツイストに慣れていないので、多くのことを知りません。また、ツイストに関する適切なドキュメントもありません。誰かがこのエラーを解決するために私を案内してください:

コードスニペットは次のとおりです。

2 番目のコード スニペットは次のとおりです。

0 投票する
1 に答える
253 参照

python - Python3 で Twisted コードのテストを実行する

比較的単純な SSL サーバーを Twisted で実行しているので、ユニット テストをいくつか書きたいと思います。Python 3 を使用する場合にこれを行う最善の方法がよくわかりません。私が見つけたすべてのドキュメントは、残念ながら Py3k では不完全な Twisted Trial の使用について説明しています。

私が考えているのは、次のようなことです。

  • 私のコードをロードし、すべてを実行しますが、reactor.run()
  • コードで処理したいデータを送信する
  • 実行しますreactor.doIteration()(または、reactor.iterate()より良いですか?)
  • サーバーが想定どおりに動作したことを確認してください

これは、この種の状況を処理する正当な方法ですか?

編集:

これは悪い考えかもしれないというグリフからの回答(ただし、特にテストについて話しているわけではありません)

編集2:

主な問題は、Twisted と絡み合ったコンポーネントをテストしようとしていて、それを引き離して個々のコンポーネントを適切にテストする方法がわからない場合だと思います。これをテストする信頼できる方法はありますか?.run()を呼び出して、アクションを完了してから数秒後に実行されるイベントを挿入して、リアクターを停止し、結果をテストする必要がありますか?

0 投票する
0 に答える
82 参照

python - Twisted を使用した IPv6 でのオプション ヘッダーの追加と読み取り

ソフトウェア定義ネットワーク プロジェクトに取り組んでおり、IPv6 UDP パケットの宛先オプション ヘッダーにデータ タグを挿入したいと考えています。私は少しつまずいていて、最終的に Twisted 14.0 を調べました。これにはいくつかのピースがあるようですが、それらをまとめる方法がわかりません。(私は Python の初心者であり、Twisted の初心者なので、混乱させて申し訳ありません。)

関数「send1msg」と「recv1msg」のペアがあることがわかります。これらは、C 呼び出し sendmsg() と recvmsg() の機能の「一部」のラッパーであるはずです。ドキュメントを読むと、次の 3 つの疑問が残ります。

1) 送信の場合、フォーマットは num_bytes_sent = send1msg(filedescriptor、data、flags、ancillary) を示します。補助データはタプル (cmsg_level、cmsg_type、data) のようです。それは明らかですが、私が見ていないのは、補助データが宛先オプション フィールドであることを識別する方法です。通常は setsockopt() を介して行われますが、Twisted でそれを行う方法がわかりません。補助データは、技術的にはヘッダーの任意のフィールドにある可能性があります。

2) 受信の場合も同様: data, flags, ancillary = recv1msg(filedescriptor, size) 宛先オプションを受信するソケット オプションを設定するにはどうすればよいですか? さらに言えば、DatagramProtocol プロトコル オブジェクトを取得した場合、そこからファイル記述子を読み取るにはどうすればよいでしょうか。self.fileno() と言えますか?

3) コード例は AF_UNIX ソケットのみを示しています。これは UDP でもサポートされていますか?

0 投票する
1 に答える
1552 参照

python - 条件の後に Twisted.internet でリアクターを停止する

Twisted.internet モジュールがどのように機能するかをテストする簡単なコードがあります。特定の条件が発生したとき (例: i が 5 に等しいとき) にループを停止しようとしていますが、実行できませんでした。主なエラーが 2 つあります。

1.

2. If ステートメントを使用せずに最後にreactor.stop()を 追加しただけでは、ループが停止しません。なぜですか?

0 投票する
1 に答える
847 参照

python - Twisted リバース プロキシ SSL バックエンド

私はツイストにかなり慣れていないので、twisted.web.proxy.ReverseProxyResource を利用してリバース プロキシを作成しようとしています。最終的には、クライアントが SSL を使用して接続するようにしたいので、リクエストを検証して、SSL バックエンド サーバーにのみ渡します。以下の (非常に) 基本的なコードから始めていますが、SSL バックエンドに接続するのに苦労しており、ドキュメントが不足していることに気づきました。誰かが私にいくつかの良い指針、または理想的にはいくつかのサンプルコードを与えることができますか?

以下のコードでは、プレーンな HTTP サーバーにヒットすることを期待しているため、明らかに機能しません。これを「ssl」するにはどうすればよいでしょうか?

いつものように、どんな助けもとても、とても、とても感謝しています。

ありがとう

アレックス