2011-01-04 16 views
2

Ich versuche die iPhoto-Freigabe zu imitieren und bin so weit gekommen, den Dienst über den iPhoto-Dienstnamen "_dpap._tcp." Zu veröffentlichen. iPhoto sieht meinen Schein "teilen", aber es ist ausgegraut. Ich beobachte den Netzwerkverkehr, um zu sehen, ob iPhoto nach etwas anderem sucht, um es zu aktivieren (um es nicht grau zu machen), aber es scheint nichts zu geben, was mich glauben lässt, dass es wirklich eine Bonjour-Einstellung ist - etwas, was ich fehlen, wenn ich meinen Service veröffentliche.NSNetService Bonjour Mimicking iPhoto

alt text

Irgendwelche Ideen von dem, was iPhoto suchen werden könnte/um das zu ermöglichen? Denkst du, dass es eine Bonjour-Einstellung ist oder nur etwas, das spezifisch für iPhoto ist?

+0

Ich versuche, das gleiche zu erreichen und eine iPhoto Shared Library zu simulieren. Es wäre sehr interessant zu sehen, wie Sie Ihre Ergebnisse erreicht haben und ob Sie weiter gekommen sind und nun Bilder oder Medien über Ihren "Fake-Share" anzeigen können. – Besi

Antwort

1

Es gibt mehr zum Dienst als nur den Dienstnamen. Bonjour-Diensten sind TXT-Datensätze zugeordnet, bei denen es sich um Blobs von Daten handelt, die häufig als eine Reihe von Schlüssel/Wert-Paaren interpretiert werden. Wenn bei einem _dpap._tcp. Aktien in meinem lokalen Netzwerk suchen, habe ich die folgenden Paare bemerkt:

txtvers=1 
Version=65537 
iPSh Version=131072 
Machine ID=[a 12-digit hex string] 
Machine Name=[name of share] 
Password=false 

ich die Geräte-ID vermuten die MAC-Adresse ist, aber ich bin nicht sicher.

+0

Danke Kevin! Also, wenn Sie sagen, Bonjour Dienste haben TXT-Datensätze zugeordnet, ich bin nicht sicher, wo Sie sie bekommen. Gibt es in der API für Netzwerkdienste etwas, mit dem Sie diese sehen können? Oder, noch wichtiger, gibt es etwas in der API, mit dem Sie sie anzeigen/senden können? –

+0

Ja, es gibt. Die relevanten Methoden auf 'NSNetService', um den Datensatz abzurufen, sind' -TXTRecordData' und '+ dictionaryFromTXTRecordData:'. Die relevanten Methoden, um es zu setzen, sind '-setTXTRecordData:' und '+ dataFromTXTRecordDictionary:'. –