非ブロック型のTCPソケットを使用するpythonスクリプト(3.5.2)を作成しようとしています。ソケットは、アプリケーションからデータを受け取り、何らかの変換を行い、そのアプリケーションに送信します。変換には時間がかかるため、非同期にする必要があります。さらに、私のアプリケーションは同じポートでデータを送受信することができません。だから私の考えは、私のアプリケーションからポート4711(ちょっとした例)のデータを私のpythonスクリプトに送ってポート4712経由で結果を送り返すことです。TCPソケット - 異なるポートで送受信する
これまでのところ私はPythonやソケットではまったく動作しませんでした。私の質問は建築についてです。私は自分のスクリプトが4711(いくつかの異なるタスク)を介して常にデータを受信できるようにしたいと思っています。何かがあればそのデータを処理し、4712 - すべての非同期でデータを返します。だから私のアプリケーションは大きな作業負荷(いくつかのタスク)を送信することができ、結果が準備が整うとすぐに、それを1つずつ送り返すことができます。
私はソケットに関する現時点ではあまり圧倒されていません。受信と送信が自分自身や変換プロセスなどをブロックしないようにする方法はわかりません。誰かが説明や例を提供することができます?
異なるポートを使用する必要があるのはなぜですか? TCPはあなたのために多重化を行います。あなたのPythonサーバーに接続する各クライアントは異なるソケットを与えます。その後、プロセスをforkして/スレッドを生成してリクエストを処理し、接続のためにソケットに応答を送り返すことができます。サーバーソケット上でいつでも新しい接続を受け入れることができます。あなたの側でソケットの理解が不足している、または私はあなたのためにこのデザインを不可能にする何かを逃していますか*異なるポートを使用する必要がありますか? –
私は正しいと思います。私は知識が不足しています。 :)しかし、本当にこれの理由があります。私が使っているアプリケーション(私が開発したものではない第三者のアプリケーション)は、定義されたポートだけでデータを送信できました。聞く必要がある場合は、別のポートを選択する必要があります。同じポートにデータシンクとデータソースはありませんでした。 – Stefan