Je suis en train de concevoir un nouveau serveur qui doit prendre en charge des milliers de connexions UDP (quelque 100 000 sessions environ). Avez-vous des suggestions ou des suggestions sur laquelle utiliser?
La réponse est epoll si vous utilisez Linux, kqueue si vous utilisez FreeBSD ou Mac OS X et des ports d'achèvement d'E/S si vous utilisez Windows.
Certaines choses supplémentaires que vous voudrez (presque certainement) rechercher sont:
De plus, il est important de noter que UDP n'a pas de "connexions" par opposition à TCP. Il serait également dans votre intérêt de commencer petit et à grande échelle, car le débogage de solutions basées sur le réseau peut être difficile.
L'auteur de CURL a écrit un article étonnant sur sondage vs sélection vs bibliothèques d'événements.
Linux: epoll
FreeBSD: kqueue
Windows: ??
Il existe des bibliothèques d'encapsuleurs, telles que libevent et libev, qui peuvent en faire abstraction pour vous.