Use multicast. Cada cliente precisaria ingressar no grupo, mas essa é uma tarefa de sobrecarga muito baixa. Você teria o benefício adicional de ter clientes em outras máquinas capazes de receber a mensagem com eficiência.
Se isso não for feito, procure em um dos vários pacotes de barramento de mensagens (por exemplo, mqueue, rabbitmq, etc) que permitirão a entrega confiável de informações programáticas a vários processos sem a necessidade de reinventar a roda.