No estoy seguro de si he perdido sólo parte de la documentación o no, pero estoy teniendo un tiempo difícil averiguar cómo configurar un launchd
agente que puede ser activa cada vez que un datagrama se reciba dentro de un grupo de multidifusión.
Lo que me gustaría saber es qué launchd
plist debe verse como proporcionar un datagrama oyente que está enlazado a un grupo de multidifusión.
Esto es lo que he estado tratando de:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>foo.bar</string>
<key>Program</key>
<string>/foo/bar</string>
<key>Sockets</key>
<dict>
<key>Listeners</key>
<dict>
<key>SockType</key>
<string>dgram</string>
<key>SockServiceName</key>
<string>12345</string>
<key>SockFamily</key>
<string>IPv4</string>
<key>MulticastSocket</key>
<string>224.0.0.253</string>
</dict>
</dict>
<key>inetdCompatibility</key>
<dict>
<key>Wait</key>
<false/>
</dict>
</dict>
</plist>
Pero sólo genera getaddrinfo
errores ("nodename ni servname siempre, o no se sabe"). Quitar el grupo de multidifusión sólo la instalación de un puerto UDP parece funcionar bien, pero yo realmente no quiero tener que codificar una dirección IP o DNS local.
Hay buenos ejemplos de cómo crear un multidifusión escuchar lanzar el agente o demonio mediante launchd
? O me estoy perdiendo algún otro paso, o un malentendido qué datos debo ingresar para un grupo de multidifusión?