Pregunta

Recientemente me he topado con algo llamado IOCP en la plataforma de Windows, para ser más precisos: Puertos de control de entrada / salida. Esta parece ser la forma más eficiente para codificar el software de su servidor cuando necesita mantener a miles de usuarios al mismo tiempo. (Corríjame si me equivoco, pero el hilo por socket, el sondeo y las devoluciones de llamada asíncronas (el hilo en cada devolución de llamada) no son lo suficientemente eficientes.)

Me pregunto si hay bibliotecas de terceros disponibles que implementen este concepto. Sé que la API Win32 nos proporciona CreateIoCompletionPort, FreeBSD tiene kqueue y Linux en general puede usar / dev / epoll que funciona de manera similar ... Pero no hay una biblioteca de plataforma cruzada (como boost :: thread) que maneje estas cosas para mi?

¿Fue útil?

Solución

¿Has mirado en boost :: asio? No estoy seguro de si tiene toda esta funcionalidad todavía, pero creo que esa es una de las cosas para las que está destinada.

Otros consejos

Sé que esta es una respuesta tardía a este hilo, pero para aquellos interesados ??en una biblioteca de plataforma x que admita IO asíncrono tanto en Linux / UNIX como en Windows, es posible que desee echar un vistazo a libuv .

libuv se construyó inicialmente como la base fundamental de node.js, pero ha evolucionado hasta convertirse en un potente biblioteca de abstracción para muchas preocupaciones de bajo nivel, plataforma x, incluyendo IO asíncrona, zócalos TCP sin bloqueo & amp; Canalizaciones con nombre, UDP, temporizadores, desove del proceso hijo , tiempo de alta resolución, programación del grupo de subprocesos, etc.

libevent funciona en varios sistemas operativos * nix y también se ejecuta en Windows.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top