4

我有一个需要连接到多个对等点的 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. 如何解析多个设备的地址?
4

2 回答 2

9

修改Apple.Developer Witap应用程序非常困难,因为您需要保存所有已解析的地址,必须修改所有方法并处理很多。

我认为本教程将实现您的目标。

该应用程序名为“<strong>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 应用程序相同

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

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

是的你可以

如果是,同一模式下最多可以连接多少台设备?

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

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

我的建议是 TCP

您的问题的其余答案可以从示例 Chatty 应用程序中轻松理解 :)

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

于 2012-12-05T06:11:12.043 回答
0

根据您的应用程序的性质,您可以使用 GamKit 框架,它会提供比您要求的更多的功能。以下是要采取的预防措施。

  1. 游戏中心

6.1 向最终用户或任何第三方显示任何玩家 ID 的应用程序将被拒绝 6.2 将玩家 ID 用于未经游戏中心条款批准的任何用途的应用程序将被拒绝 6.3 尝试反向查找、跟踪、关联、关联、挖掘、收获或以其他方式利用通过 Game Center 获得的玩家 ID、别名或其他信息将从 iOS 开发者计划中删除 6.4 Game Center 信息(例如排行榜分数)只能用于批准用于与游戏中心 6.5 使用游戏中心服务发送未经请求的消息,或以钓鱼或垃圾邮件为目的的应用程序将被拒绝 6.6 过度使用游戏中心网络容量或带宽的应用程序将被拒绝 6.7 传播病毒、文件的应用程序, 计算机代码,或可能损害或破坏游戏中心服务正常运行的程序将被拒绝

于 2012-11-29T22:44:46.430 回答