2012-03-12 4 views
4

Я почти полностью закончил с клиентом iOS для службы REST. Единственное, чего мне не хватает, - это возможность для клиента прослушивать в сети для широковещательной передачи UDP, которая получает отображаемое имя хоста и базовый URL для загрузки. В сети может быть несколько серверов, ожидающих загрузки.Получать udp широковещательные пакеты ios

Асинхронный является предпочтительным. Серверы будут отображаться пользователю, когда устройство обнаружит их, и я хочу, чтобы пользователь мог выбрать сервер в любой момент времени.

Передатчик отправляет 255.255.255.255 и не ожидает, что данные вернутся.

Я новичок в объективе c, поэтому что-то простое и удобное в использовании.

ответ

3

Рекомендую посмотреть CocoaAsyncSocket. Он может хорошо обрабатывать сокеты UDP. Я не пробовал слушать трансляцию с ней, но это, наверное, лучший выбор.

+1

Когда я пытаюсь сделать новый экземпляр GCDAsyncSocket он говорит мне, что это: Неопределенные символы для архитектуры i386: «_OBJC_CLASS _ $ _ GCDAsyncUdpSocket», ссылки из: ObjC-класса реф в ImageShareViewController.o л.д.: символ (-ы) не найден для архитектуры i386 clang: ошибка: команда компоновщика не сработала с кодом выхода 1 (используйте -v, чтобы увидеть вызов) Я не уверен, что это означает, кроме того, что он не хочет запускать на Симулятор iPhone, потому что ему не нравится архитектура. Есть идеи? – nick

+0

Это означает, что вы не связываете код GCDAsyncUdpSocket. Возможно, это связано с тем, что вы связываете статическую библиотеку, в которой есть только объекты iOS, или вы вообще не можете связывать библиотеку, или вы не можете компилировать источник как часть этой цели. –

+0

Чтобы заставить его работать, мне пришлось отключить ARC. Существуют ли какие-либо значительные риски для этого, о которых я должен знать? – nick

Смежные вопросы