NSNetService Bonjour, имитирующий iPhoto

Я пытаюсь имитировать совместное использование iPhoto и дошел до публикации службы, используя имя службы iPhoto «_dpap._tcp.». iPhoto видит мою фальшивую «поделиться», но она неактивна. Я наблюдаю за сетевым трафиком, чтобы увидеть, ищет ли iPhoto что-то еще, чтобы включить его (чтобы сделать его не серым), но, похоже, нет ничего, что заставило бы меня поверить, что это действительно настройка bonjour - что-то, что я отсутствует, когда я публикую свой сервис.

альтернативный текст

Любые идеи о том, что iPhoto может искать / нуждаться в этом? Как вы думаете, это настройка Bonjour или что-то особенное для iPhoto?


person Matt Long    schedule 04.01.2011    source источник
comment
Я пытаюсь добиться того же и смоделировать общую библиотеку iPhoto. Было бы очень интересно посмотреть, как вы добились своих результатов и продвинулись ли вы дальше и теперь можете отображать изображения или мультимедиа через свою фальшивую акцию.   -  person Besi    schedule 07.12.2011


Ответы (1)


В сервисе есть нечто большее, чем просто название сервиса. Службы Bonjour имеют связанные с ними записи TXT, которые представляют собой блоки данных, которые обычно интерпретируются как последовательность пар ключ/значение. При просмотре общего ресурса _dpap._tcp. в моей локальной сети я заметил следующие пары:

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

Я подозреваю, что идентификатор машины - это MAC-адрес, но я не уверен.

person Lily Ballard    schedule 04.01.2011
comment
Спасибо, Кевин! Итак, когда вы говорите, что службы Bonjour связаны с записями TXT, я не уверен, откуда вы их берете. Есть ли что-то в API сетевых служб, что позволяет вам их видеть? Или, что более важно, есть ли что-то в API, позволяющее отображать/транслировать их? - person Matt Long; 11.01.2011
comment
Да, есть. Соответствующие методы для NSNetService для извлечения записи: -TXTRecordData и +dictionaryFromTXTRecordData:. Соответствующие методы для его установки: -setTXTRecordData: и +dataFromTXTRecordDictionary:. - person Lily Ballard; 11.01.2011