如何通过WiFi连接iPhone应用程序上的多个对等体?

Mus*_*P P 4 objective-c wifi nsnetservice ios cfsocket

我有一个ios(iPhone)应用程序的想法,需要连接到几个同行.我的代码基于WiTab(SampleCode-developer.apple.com)示例.

当我的应用程序启动时,每个对等体创建单独的Socket(CFSocket)并通过NSNetService Class发布.在特定实例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];           
  }
Run Code Online (Sandbox Code Playgroud)

但是它只会解析一个设备(self.selectedService objectAtIndex:0).那我怎样才能解析多个对等体地址/如何为多个设备建立连接.所以我的怀疑是: -

  1. 是否可以通过WiFi同时连接多个设备?
  2. 如果是,则可以以相同模式连接的最大设备数是多少?
  3. 哪种类型的CFSocket对多个连接(TCP/UDP)有用?
  4. 是否需要在每个对等体中创建多个CFSocket?
  5. 如果是,怎么样?他们的文件是什么?
  6. 是否需要建立会话?
  7. 如何解决mutple设备的地址?

Sha*_* TK 8

很难修改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网络上广告(在这种情况下,您的应用程序充当聊天"服务器")或查找并加入由您网络上的其他人托管的聊天室(充当聊天"客户").聊天室的公告和发现都是使用Apple的Bonjour协议实现的,与Witap Application相同

现在我回答你的每一个问题

是否可以通过WiFi同时连接多个设备?

是的你可以

如果是,则可以以相同模式连接的最大设备数是多少?

我认为你可以配对任意数量的设备

哪种类型的CFSocket对多个连接(TCP/UDP)有用?

我的建议是TCP

您可以从示例Chatty App轻松了解您的问题的其余答案:)

注意:服务器和客户端需要位于同一WiFi网络上