さまざまなプロトコル (TCP プッシュ/プル、UDP プッシュ/プル/マルチキャスト) を管理できる単純なビデオ ストリーミング (実際には画像ストリーミング) サーバーを作成したいと考えています。
TCP プッシュ/プルをSocketServer.TCPServer
クラスで動作させ、ThreadinMixIn
接続された各クライアントを異なるスレッドで処理することができました。
しかし、UDP プロトコルに取り組んでいるので、ThreadinMixIn がhandle()
クライアント クエリごとの呼び出しごとにスレッドを作成することに気付きました (UDP には「接続」などがないため)。
問題は、すべてのクライアントに対して、同じクライアントによる一連のクエリを処理する必要があることです。どうすればそれを管理できますか?
これを処理できる唯一の方法は、(クライアントアドレス、処理スレッド)のリストを取得し、各クエリを一致するスレッドに送信することです(または、クライアントがまだスレッドを送信していない場合は新しいクエリを作成します)。それを行う簡単な方法はありますか?
ありがとう !
PS:ソケットの仕組みを理解することを目的とした学校の科目であるため、これには外部または「高レベル」のライブラリを使用できません。