0

チャットなどの python ソケット プログラミングでは、主な目的は他のユーザーからメッセージを受信し続けることです。他のユーザーがキーを押した場合、プログラムは入力を受け取り、受信したメッセージを出力する代わりにそのメッセージを送信する必要があります。送信が終了したら、受信したメッセージを出力する必要があります。ユーザーにメッセージを入力するように明示的に要求せずにこれを行うには?

ありがとう。

4

1 に答える 1

1

あなたの質問を正しく理解できれば、何らかの形のイベント システムを使用したくなるでしょう。テキストの入力とメッセージの受信をイベントとして扱います。

http://en.wikipedia.org/wiki/Event_(コンピューティング)

Python のイベント システム

このようなものはリアルタイム プログラムであるため、プログラムはループで実行されます。ループ全体で、イベントはキューに入れられ、各ループの開始時に、トリガーされた順序で処理されます。

あなたはネットワーキングを扱っているので、ちょっとしたスレッド化が役に立つかもしれません。Global Interpreter Lock のため、Python は実際にはマルチスレッドを使用してパフォーマンスを向上させることはできませんが、バックグラウンドで I/O を実行するのには依然として役立ちます。このように、チャット クライアント (あなたの例を使用するため) が他の人が送信したメッセージを取得しようとしている間、プログラムの残りの部分はフリーズしません。これは、インターネット接続が遅い場合に特に役立ちます。

于 2013-03-09T20:55:02.093 に答える