Estoy intentando diseñar un protocolo P2P donde varias aplicaciones de usuario en una red residencial puedan descubrirse entre sí. He analizado varios protocolos de descubrimiento de servicios, especialmente DNS-SD con mDNS. Parece funcionar bien para un cliente que descubre múltiples dispositivos, y también un dispositivo que ofrece múltiples servicios diferentes que se han configurado como tales.
Sin embargo, a mi entender, hay como máximo un cliente (que envía consultas y almacena en caché los resultados) por host y como máximo un respondedor (que responde a las consultas) por host. Entonces, si tengo varias aplicaciones ejecutándose en la misma computadora, tendrían que compartir el cliente / respondedor, lo que parece ser una molestia, especialmente en Windows que no ofrece este servicio de forma nativa. ¿Es correcta esta interpretación?
¿O sería posible que cada aplicación ejecute su propio cliente y resolutor, independientemente de las otras aplicaciones, sin conflictos?
Si la respuesta es no, ¿qué alternativas podría haber?