Launchd Multicast Socket Listener

1

Non sono sicuro di aver perso qualche documentazione o no, ma sto facendo fatica a capire come impostare un agente launchd che può essere attivato ogni volta che un datagramma viene ricevuto all'interno di un multicast gruppo.

Quello che mi piacerebbe sapere è come dovrebbe apparire un launchd plist per fornire un semplice listener di datagrammi associato a un gruppo multicast.

Ecco cosa ho provato:

<?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>

Ma genera solo% errori digetaddrinfo ("nomenodo e nomeserver forniti o non noti"). La rimozione del gruppo multicast per l'installazione di una porta UDP sembra funzionare correttamente, ma in realtà non voglio dover codificare un indirizzo IP o un DNS locale.

Esistono buoni esempi di come creare un agente di lancio o un demone di ascolto multicast utilizzando launchd ? Oppure mi manca qualche altro passaggio o frainteso quali dati dovrei inserire per un gruppo multicast?

    
posta Haravikk 13.06.2014 - 16:24
fonte

1 risposta

1

L'ho impostato utilizzando LaunchControl .

<?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>Sock1</key>
        <dict>
            <key>MulticastGroup</key>
            <string>224.0.0.253</string>
            <key>SockFamily</key>
            <string>IPv4</string>
            <key>SockProtocol</key>
            <string>UDP</string>
            <key>SockServiceName</key>
            <string>12345</string>
            <key>SockType</key>
            <string>dgram</string>
        </dict>
    </dict>
    <key>inetdCompatibility</key>
    <dict>
        <key>Wait</key>
        <true/>
    </dict>
</dict>
</plist>
    
risposta data 08.10.2014 - 02:44
fonte

Leggi altre domande sui tag