Question

Je suis récemment tombé sur quelque chose appelé IOCP sur la plate-forme Windows, pour être plus précis: les ports de contrôle d'entrée / sortie. Cela semble être le moyen le plus efficace de coder votre logiciel serveur lorsqu'il doit contenir des milliers d'utilisateurs simultanément. (Corrigez-moi si je me trompe, mais les rappels asynchrones et thread-par-socket (thread à chaque rappel) ne sont pas assez efficaces.)

Je me demande s'il existe des bibliothèques tierces disponibles qui implémentent ce concept. Je sais que l'API win32 nous fournit CreateIoCompletionPort, FreeBSD a kqueue et Linux en général peut utiliser / dev / epoll qui fonctionne un peu de la même façon ... Mais n'y a-t-il pas de bibliothèque crossplatform (telle que boost :: thread) qui gère ce genre de choses? pour moi?

Était-ce utile?

La solution

Avez-vous examiné boost :: asio? Je ne sais pas encore s'il dispose de toutes ces fonctionnalités, mais je pense que c'est l'une des choses pour lesquelles il est destiné.

Autres conseils

Je sais qu’il s’agit d’une réponse tardive à ce fil de discussion, mais si vous êtes intéressé par une bibliothèque x-platform prenant en charge les entrées / sorties asynchrones sous Linux / UNIX et Windows, consultez libuv .

libuv a été initialement construit comme fondement de node.js, mais il a évolué pour devenir un bibliothèque d'abstraction puissante pour de nombreuses préoccupations de bas niveau et de plate-forme x, notamment les entrées-sorties asynchrones, les sockets TCP non bloquants & amp; canaux nommés, UDP, minuteries, génération de processus enfant , temps de résolution élevé, planification du pool de threads, etc.

libevent fonctionne sur un certain nombre de systèmes d'exploitation * nix et fonctionne également sous Windows.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top