【发布时间】:2012-01-12 10:49:31
【问题描述】:
我有一个需要连接到多个对等点的 ios(iPhone) 应用程序的想法。我的代码基于WiTab (SampleCode-developer.apple.com) 示例。
当我的应用程序启动每个对等点时,创建单独的 Socket(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)。那么我该如何解析多个对等地址/如何为多个设备建立连接。 所以我的疑问是:-
- 是否可以通过 WiFi 同时连接多个设备?
- 如果是,同一模式下最多可以连接多少台设备?
- 哪种类型的 CFSocket 对多连接(TCP/UDP)有用?
- 是否需要在每个peer中创建多个CFSocket?
- 如果是,如何?他们有任何可用的文件吗?
- 是否需要建立会话?
- 如何解析多个设备的地址?
【问题讨论】:
-
您不需要重复使用单个 currentResolve 对象。每次通过循环动态创建一个,并将对它们的引用存储在一个数组中,以便在超时后进行检索/处理。
标签: objective-c ios wifi nsnetservice cfsocket