Microsoft Windows WinSock API を使用している小さな http サーバーを作成しています。
複数のユーザーを処理する場合、マルチスレッド ロジックを適用する必要がありますか?
現在、Windows は、ネットワーク イベントが発生し、各メッセージが send() または recv() で使用されるソケットを (wParam で) 運ぶときにメッセージを送信します。
クライアント A が接続していくつかのファイルを要求すると、通常、Winsock によって多数のソケットが作成されます。私のサーバーは、「このファイルをソケット123に送信し、後でそのファイルをソケット456に送信する」というメッセージを受け取ります
別のクライアントが接続すると、それもいくつかのソケット、たとえば 789 と 654 を取得します。
私のサーバーは、提供されたソケット番号を使用してデータを送信する要求に応答します。正しいファイルを正しいソケットに送信する必要があるため、誰がファイルを必要としているかを知る必要はありません。
接続の受け入れとメッセージのプログラムへの送信を処理するときに、Windows 自体が複数のスレッドを使用するかどうかはわかりません。
だから私の質問は:
複数のユーザーを処理する場合、マルチスレッド ロジックを適用する必要がありますか? もしそうなら、どの時点でスレッドを作成する必要がありますか?