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

2023-12-28

我有一个 ios(iPhone) 应用程序的想法,它需要连接到多个对等点。我的代码基于WiTab http://developer.apple.com/library/ios/#samplecode/WiTap/Introduction/Intro.html#//apple_ref/doc/uid/DTS40007321(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. 是否需要在每个peer中创建多个CFSocket?
  5. 如果是,怎么办?他们有什么可用的文件吗?
  6. 是否需要建立会话?
  7. 如何解析多个设备的地址?

修改起来相当困难Apple. 开发者 Witap应用程序因为需要保存所有解析的地址,所以必须修改所有方法和句柄。

I think 本教程 http://mobileorchard.com/tutorial-networking-and-bonjour-on-iphone/将会实现你的目标。

该应用程序名为“Chatty”。其源代码位于here http://www.mobileorchard.com/wp-content/uploads/2009/05/chatty.zip

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

它正在根据麻省理工学院许可证,这意味着你是自由修改和重复使用随意

在本教程中,他们将探索一个简单的 iPhone 聊天应用程序。它允许您托管自己的聊天室并在您的网站上做广告本地 Wi-Fi 网络(在这种情况下,您的应用程序充当聊天“服务器”)或查找并加入由网络上其他人托管的聊天室(充当聊天“客户端”)。聊天室的公告和发现都是使用Apple的Bonjour 协议与 Witap 应用程序相同

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

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

是的你可以

如果是,最多可以连接多少台设备 相同的图案?

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

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

我的建议是TCP

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

Note:服务器和客户端需要在同一个WiFi网络下

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过 WiFi 连接 iPhone 应用程序上的多个对等点? 的相关文章

  • 检查定位服务是否开启

    我一直在对 CoreLocation 进行一些研究 最近 我遇到了一个在其他地方 但在 Objective C 和 iOS 8 中 已经讨论过的问题 我觉得问这个问题有点傻 但是如何在 iOS 9 上使用 swift 检查是否启用了位置服务
  • UICollectionView 自动滚动到 IndexPath 处的单元格

    在加载集合视图之前 用户设置集合视图数组中的图像数量 所有单元格都不适合屏幕 我有 30 个单元格 但屏幕上只有 6 个 问题 如何在加载 UICollectionView 时自动滚动到具有所需图像的单元格 新的 编辑过的答案 将其添加到v
  • 将永久字符添加到 UITextField

    有没有办法将字母永久添加到 UITextField 中 用户无法删除它 我想添加一个字符 用户无法删除它 但他们仍然可以在之后添加字母 Cheers 附注这是适用于 iOS 的 A UITextField有一个名为 应该更改范围内的字符 的
  • 本地化现有的 iOS 应用程序

    我不敢相信以前没有人问过这个问题 要么是我的编码实践太无组织性 要么是我没有使用正确的关键字 How can I localize an existing iOS app that does not use NSLocalizedStrin
  • 打乱 NSMutableArray 而不重复并显示在 UIButton 中

    在我看来 我有 12 个按钮 一个数组包含 6 个名称 我想在其中打印数组名称UIButton标题 这是我的代码 texts NSMutableArray alloc initWithObjects 1 2 3 4 5 6 nil UIBu
  • 在 WKWebView 中禁用放大手势

    我正在寻找一种方法来禁用 WKWebView 的 iOS 实现上的 捏合缩放 放大手势 OS X 有一个 magnification BOOL 属性 但在 iOS 上似乎不可用 WKWebView h if TARGET OS IPHONE
  • 如何在 iOS 9 上可靠地检测是否连接了外部键盘?

    在 iOS 9 之前 确定是否连接外部键盘的最可靠方法是监听UIKeyboardWillShowNotification并使文本字段成为第一响应者 如中所述这个问题 https stackoverflow com questions 289
  • 如何使用 NSUserDefaults 在 Swift 中存储自定义类的数组?

    我有一个名为的自定义类Person当某人输入信息时 它会存储有关某人的各种属性 class Person Person dictionary variable var name String var age String var html
  • UIScrollView setZoomScale 将应用的旋转设置回零

    我已经从事地图替换工作很长一段时间了 整个事情的工作原理是UIScrollView由一个支持CATiledLayer 为了旋转我的地图 我旋转图层本身 使用CATransform3DMakeRotation 到目前为止效果很好 但如果我打电
  • 如何接收有关与我共享的记录中所做更改的 CloudKit 通知?

    我有两个 iCloud 帐户 A and B 在两个不同的设备上 来自其中之一 A 我将 ckrecord 分享给另一个人 B 像这样 let controller UICloudSharingController controller p
  • UIButton的高亮状态由什么控制事件开始和结束

    我正在创建类似钢琴的视图UIButton作为钢琴键 什么UIControlEvents当按钮获得和失去突出显示状态时 我应该监听以获得回调吗 我试图创建子类UIButton并添加属性观察者highlighted并且运行良好 然而 有时我需要
  • 在 XCode 中链接静态 ObjC 库的过程

    我正在尝试链接到静态库 但不断收到链接器错误 我发现了一些发布示例的网站 但我无法看到我做错了什么 首先 我创建一个链接到我的库的项目 添加 gt 现有文件找到我的 xcodeproj 文件选择 将项目复制到目标组文件夹 选择我的宿主项目作
  • 如何使用 Swift 使用 TouchID?

    Apple 为 iOS 8 的 TouchID 实现提供的文档采用 Objective C 语言 有 Swift 版本吗 Objective C IBAction touchIDAvailable UIButton touchIDAvail
  • 将 Firebase 云消息传递与 Windows 应用程序结合使用

    我在 Android 和 iOS 应用程序中使用 Firebase Cloud Messaging 但是我还有此应用程序的 Windows Mac OS 版本 我想保留相同的逻辑 我知道 Firebase Cloud Messaging 可
  • 减少 CoreData 的调试输出?

    我正在开发一个使用 CoreData 的 iOS macOS 项目 它工作正常 但它会向控制台输出大量调试信息 这使得控制台无法使用 因为我的打印语句隐藏在所有与 CoreData 相关的内容中 我有一个非常简单的 CoreData 设置
  • 推送动画,没有阴影和停电

    我有一个简单的iOS NavigationController基于应用程序 二UICollectionViews 相继 如果元素打开 第一个合集 被点击时 第二集 将被打开 非常简单 重要的提示 Both UICollectionViews
  • Apple Watch 预构建操作可更改故事板 customModule 引用

    我目前有一个项目 其中包含同一应用程序的 3 个不同版本 不同的品牌等 该项目运行得很好 从那时起 我添加了 3 个新的 Apple Watch 目标 每个应用程序 版本 1 个 其中 2 个引用 主 Apple Watch 目标中的文件
  • AVAssetExportSession 为零 iPhone 7 - Plus 模拟器

    AVAssetExportSession在 iPhone 6 及以下版本上运行良好 但在 iPhone 7 iPhone 7 Plus 模拟器上运行不佳 Xcode 8 0 这段代码return nil在exportSession中 当在i
  • 水平 UICollectionView 单行布局

    我正在尝试使用以下命令设置简单的水平布局UICollectionView 兜圈子却没有达到预期的结果 所以任何指针或例子将不胜感激 我粘贴经常更改的代码但没有成功可能没什么意义 该图像显示两行 第一行是单个项目 尺寸正确并且在中心正确对齐
  • UIView晃动动画

    我试图在按下按钮时使 UIView 摇动 我正在调整我找到的代码http www cimgf com 2008 02 27 core animation tutorial window shake effect http www cimgf

随机推荐