UDP経由で多数のクライアントに接続するc ++のサーバーで作業しています。特定のソケットからの着信データグラムを処理するには、スレッド プールが最適であると判断しました。
私の質問は、スケーラビリティの観点から、各ワーカー スレッドが sendto を呼び出せるようにするのが最善でしょうか? それらは同じソケットで行うべきですか、それとも別のソケットが望ましいでしょうか? すべてのトラフィックは 1 つのポートを通過します。
私が準備したものから、recvfrom と sendto への呼び出しはアトミックであり、ソケットをリッスンするための専用スレッドが既にあるようです (現在は非ブロックであり、ソケットを読み取る準備ができているかどうかを判断するために呼び出しを選択します) )。
私が自分の意志で行くとしたら、おそらく別のソケットを使用して送信し、複数のスレッドを使用して送信するでしょう(すべてのアクションが有効であると仮定します)。
これがどれほど役立つかはわかりませんが、これは一般的な考え方です。