Pregunta

Tengo un objeto de mensaje serializado como flujo de datos binarios (puede ser cualquier std :: streambuf) y quiero transferirlo a otro proceso. La clave es que la aplicación del servidor debe manejar muchos clientes, la conexión debe ser asincrónica (debido a que hay múltiples clientes) y bidireccional (bajo el capó puede implementarse mediante dos conexiones separadas). Los mensajes tienen una longitud variable y deben ponerse en cola. ¿Qué método de IPC debo elegir para esto? ¿Existe alguna forma sencilla de transferir búfer de flujo a través de aplicaciones? La velocidad no es fundamental, pero será bueno no bloquear la aplicación durante demasiado tiempo. Todo se hará localmente en Windows (mi objetivo es XP y versiones posteriores), no se requiere soporte de red.

También necesito la posibilidad de escuchar las conexiones entrantes. El servidor debería detectar automáticamente nuevas conexiones, hacer un protocolo de enlace y aceptar, si es compatible. Soy consciente de que necesito escribir muchas de las cosas que mencioné por mi cuenta. De todos modos, debe ser posible lograrlo pero, por supuesto, cuanto más simple, mejor.

¿Fue útil?

Solución

Puede utilizar canalizaciones con nombre en Windows. Consulte la referencia de MSDN: http://msdn.microsoft.com / en-us / library / aa365150% 28v= frente a 85% 29.aspx

También puede configurarlo para que sea dúplex completo (bidireccional) y asíncrono.Si está familiarizado con las API de E / S de archivos en Windows, debería ser sencillo de usar.

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