数千のUDP接続(約100,000セッション)をサポートする必要がある新しいサーバーを設計しています。使用する入力または提案はありますか?
答えは、Linuxを使用している場合はepoll、FreeBSDまたはMac OS Xを使用している場合はkqueue、Windowsを使用している場合はI/O完了ポートです。
あなたが(ほぼ確実に)調査したいと思ういくつかの追加事項は次のとおりです:
さらに、UDPにはTCPとは異なり「接続」がないことに注意することは重要です。また、ネットワークベースのソリューションのデバッグは困難な場合があるため、小規模から始めて規模を拡大することも最大の関心事です。
CURLの著者は、ポールvsセレクトvsイベントライブラリに関するすばらしい記事を書きました。
Linux:epoll
FreeBSD:kqueue
Windows:??
これを抽象化できるlibeventやlibevなどのラッパーライブラリがあります。