SocketServer モジュールを使用して、サーバーのリクエスト ハンドラー内の個々の接続にタイムアウトを追加したいと考えています。
まず、Python を使用してネットワーク プログラミングを試みるのはこれが初めてです。SocketServer.BaseRequestHandler と SocketServer.ThreadingTCPServer と SocketServer.TCPServer をサブクラス化し、いくつかの基本的なスレッド TCP 機能を備えた 2 つのクラスを作成することができました。
ただし、着信接続をタイムアウトにしたいと思います。組み込みの SocketServer タイムアウト値とメソッドのいずれかをオーバーライドしようとしても機能しません。ドキュメントによると、これはフォーク サーバーでのみ機能するためです。X 秒後に起動するタイマー スレッドを作成することができましたが、ハンドラー スレッド内のブロッキング recv 呼び出しの性質により、強制的に強制終了されるため、これは役に立ちません。避けたい。
したがって、通知を受け取り、一定量のデータを読み取る非同期コアの実装が必要であることを理解しています。5 秒間データが送信されない場合、その接続を閉じたいとします (きれいに行う方法を知っています)。ソケットで非同期コアを使用する例をいくつか見つけましたが、SocketServer を使用した例はありません。では、どうすれば asyncore & threadingTCPserver を実装できますか? 出来ますか?誰かがやったことがありますか?