0

特定のチャット プロトコルのクライアント側を実装する Python ライブラリを作成しようとしています。

サーバーに接続した後、サーバー
から読み取り、受信したコマンドを処理するメイン ループを開始します。ここでコールバック関数 (on_messageon file_receivedなど) を呼び出す必要があります。

これを実装するにはどうすればよいですか?
コールバック関数ごとに新しいスレッドを開始する必要がありますか? いくつかのコールバックが戻るまでに時間がかかる場合があり、タイムアウトします。
また、
サーバーから読み取るメインループがスレッド内にある場合、別のスレッドからソケットに書き込むことができますか (サーバーにメッセージを送信します)?
または、より良いアプローチがありますか?ありがとう。

4

3 に答える 3

6

これを行う Python アプリの場合、スレッドは使用しません。Twistedのようなフレームワークを使用します。

ドキュメントには例があります。これがチャットの例です。

于 2009-11-03T23:17:16.557 に答える
2

私はselectモジュールを使用するか、または代わりにひねりを加えますが、selectはもう少し移植性が高く、私の考えでは幾分pythonicです。

于 2009-11-04T06:00:39.247 に答える
1

ここでは、スレッドは不必要に複雑なものであり、正しく使用する方法に慣れていないと、あいまいなバグにつながる可能性があります。ただし、 asyncoreまたはasynchatは同じ目標への単純なルートです。

于 2009-11-04T10:33:06.627 に答える