Мой первый вопрос: как мне получить вызов didAcceptConnectionWithInputStream:outputStream:
в NSNetServiceDelegate
?
Последующий вопрос: могу ли я установить соединение между клиентом и сервером, хотя я никогда не получаю обратного вызова о том, что соединение было принято (через didAcceptConnectionWithInputStream:outputStream:
)?
Я понимаю, что вызов publishWithOptions
при передаче параметра NSNetServiceListenForConnections
должен привести к вызову обратного вызова NetServiceDelegate
(didAcceptConnectionWithInputStream:outputStream:
). Однако этот обратный вызов не вызывается.
Вот шаги, которые я предпринимаю, чтобы опубликовать:
Создать
NSNetService
сself.netService = [[NSNetService alloc] initWithDomain: @ "" тип: _serviceType name: (_ name == nil)? @ "": _name порт: 0];
Запланировать сервис в текущем цикле выполнения в режиме по умолчанию
- Установите делегата на объект-оболочку моего сервера
- позвонить
publishWithOptions:NSNetServiceListenForConnections
Вот шаги, которые я предпринимаю для просмотра сервисов:
- Создайте
NSNetServiceBrowser
и установите его делегата в мой объект-оболочку клиента - Позвоните
searchForServicesOfType
, чтобы получить тот же тип услуги и домен, что иNSNetService
- Перечислить службы в
UITableView
для пользовательского интерфейса, чтобы пользователь мог выбрать службу. - Когда пользователь выбирает службу, установите делегата службы для моего клиентского объекта и вызовите
getInputStream:outputSteam:
в службе. - После того, как getInputStream: outputSteam: вернет успех, я ожидаю, что будет вызван
didAcceptConnectionWithInputStream:outputStream:
. Однако этого не происходит.
Спасибо за вашу помощь!