Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
クライアントは、ユーザー入力とサーバーから受信したデータの両方にどのように反応できますか?
複数のクライアントを処理でき、各クライアントから受信したデータに反応できる UDP サーバーを作成しました。これまでのところ、クライアントはユーザー入力にのみ反応します。
クライアントが特定のポートでユーザー入力とデータの両方を同時にチェックすることは可能ですか?
複数のプロセス、マルチスレッドなどを使用してこれを実装する方法は複数あります。ただし、アプリケーションに最も適しているのは、すべての要求を「マルチプレックス」し、各要求を可能な限り処理する1つのプロセスです。そして、その解決策は、すべてのプログラミング言語で利用可能なselect()、poll()、epoll()です。こことここを読んでください。
スレッドの使用を検討してください。Python スレッド化は制限されています。インタープリター内で一度に実行されるスレッドは 1 つだけですが、スレッドが I/O (または「スリープ」) を待機している場合は、他のスレッドを実行できます。キューやセマフォなどを使用する必要があります。ライブラリの「threading」モジュールを参照してください。