Как подключить несколько пиров в приложении iPhone через WiFi?

У меня есть идея для приложения ios(iPhone), к которому требуется подключение к нескольким пирам. Я основываю свой код на примере WiTab (SampleCode-developer.apple.com).

Когда мое приложение запускало каждый узел, создавая отдельный сокет (CFSocket) и публикуя его через класс NSNetService. В конкретном случае класс NSNetServiceBrowser находит доступные узлы. И отобразить их имя в TableView. Когда я выбираю строку в табличном представлении, соответствующий адрес однорангового узла разрешен, соединение установлено и данные отправки-получения были успешно.

Но я хочу выбрать несколько строк в tableView (несколько пиров). и решил адрес выбранных пиров. Для этого я сохранил информацию о выбранных пирах в NSMutableArray. Когда я нажимаю (нажимаю) кнопку отправки, я хочу разрешить адрес выбранного устройства и отправлять данные выбранным узлам. Для этого я сделал этот код

 for(int k=0;k<[selectedService count];k++)
    {

             self.currentResolve = [self.selectedService objectAtIndex:k];         
             self.currentResolve = [self.selectedSer objectAtIndex:k];     
             [self.currentResolve setDelegate:self];    
             [self.currentResolve resolveWithTimeout:60];           
  }

Но это будет разрешено только одно устройство (self.selectedService objectAtIndex:0). Так как я могу разрешить адрес нескольких пиров / как установить соединение для нескольких устройств. так что мои сомнения:

  1. Можно ли подключить более одного устройства одновременно по WiFi?
  2. Если да, каково максимальное количество устройств, которое можно подключить по одному шаблону?
  3. Какой тип CFSocket полезен для нескольких соединений (TCP/UDP)?
  4. Обязательно ли создавать несколько CFSocket в каждом пиру?
  5. Если да, то как? у них есть какие-нибудь документы?
  6. Требуется ли установленная сессия?
  7. Как определить адрес для нескольких устройств?

2 ответа

Довольно сложно изменить приложение Apple.Developer Witap, потому что вам нужно хранить все разрешенные адреса, менять все методы и обрабатывать много.

Я думаю, что этот урок достигнет вашей цели.

Приложение называется "Chatty". Его исходный код находится здесь

Download the App --> Open --> Click-on Chatti project tab --> Build Settings --> Change the base SDK to iOS6

он выпускается подлицензией MIT, что означает, что вы можете изменять и использовать его по своему усмотрению

В этом уроке они собираются изучить простое приложение для чата для iPhone. Он позволяет вам размещать свою собственную комнату чата и рекламировать ее влокальной сети Wi-Fi(в этом случае ваше приложение действует как "сервер" чата) или находить и присоединяться к комнатам чата, размещенным другими людьми в вашей сети (действуя как чат "клиент"). Как объявление, так и открытие чатов осуществляются с использованием протокола Bonjour от Apple, так же как и приложения Witap

Теперь я отвечаю на каждый ваш вопрос

Можно ли подключить более одного устройства одновременно по WiFi?

Да, ты можешь

Если да, каково максимальное количество устройств, которое можно подключить по одному шаблону?

Я думаю, что вы можете соединиться с любым количеством устройств

Какой тип CFSocket полезен для нескольких соединений (TCP/UDP)?

Мое предложение TCP

Остальные ответы на ваши вопросы можно легко понять из примера приложения Chatty:)

Примечание. Сервер и клиенты должны находиться в одной сети WiFi.

В зависимости от характера вашего приложения вы можете использовать GamKit Framework, и оно будет предоставлять даже больше возможностей, чем вы просите. Вот меры предосторожности, чтобы принять.

  1. Игровой центр

6.1 Приложения, которые отображают любой идентификатор игрока для конечных пользователей или любой третьей стороны, будут отклонены. 6.2 Приложения, которые используют идентификаторы игрока для любого использования, отличного от утвержденного условиями Game Center, будут отклонены. 6.3 Разработчики, которые пытаются отменить поиск, отследить, связать, связывать, добывать, собирать или иным образом использовать идентификаторы игроков, псевдонимы или другую информацию, полученную с помощью Game Center, будут удалены из iOS Developer Program 6.4 Информация о Game Center, такая как результаты таблицы лидеров, может использоваться только в приложениях, одобренных для использования с Приложения Game Center 6.5, которые используют службу Game Center для отправки нежелательных сообщений или с целью фишинга или рассылки спама, будут отклонены. 6.6 Приложения, которые чрезмерно используют пропускную способность сети или пропускную способность Game Center, будут отклонены. 6.7 Приложения, передающие вирусы, файлы, компьютерный код или программы, которые могут навредить или нарушить нормальную работу службы Game Center, будут отклонены

Другие вопросы по тегам