问题标签 [nsnetservice]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
iphone - NSNetService - 我如何确定它是 Mac 还是 iOS 设备?
有没有办法让我找出位于 NSNetService 上的设备是 iPhone、iPad 还是 Mac?我现在能想到的唯一解决方案是连接到所有找到的并 ping 它们,并让它们中的每一个都设置为使用该信息 ping 返回。我是否能够在所有这些设备上扩展 NSNetService 以使其本身具有“设备类型”?或者有没有更简单的方法?
xcode - NSNetService 的“停止”方法不起作用
我正在使用 NSNetService 使用 Bonjour 进行广播。但是当我想停止它时,我使用[netService stop]
,netService
我的NSNetService
. 它只是不会停止,它会被调用,但不会停止。netServiceDidStop
没有被调用,所以我想我无法阻止它。顺便说一句,这个项目使用自动引用计数(ARC),我怀疑这是这个问题的原因。怎么了?
objective-c - 如何通过 WiFi 连接 iPhone 应用程序上的多个对等点?
我有一个需要连接到多个对等点的 ios(iPhone) 应用程序的想法。我的代码基于WiTab (SampleCode-developer.apple.com) 示例。
当我的应用程序启动每个对等点时,创建单独的套接字(CFSocket)并通过 NSNetService 类发布。在特定实例中,NSNetServiceBrowser 类找到可用的对等点。并在TableView中显示他们的名字。当我在表格视图中选择行时,对应的对等地址已解析,连接建立并发送接收数据成功。
但我的意图是,我想在 tableView 中选择多行(多个对等)。并解析选定的对等地址。为此,我将选定的对等点信息存储到 NSMutableArray。当我单击(触摸)发送按钮时,我想解析选定的设备地址并将数据发送到选定的对等方。为此我做了这个代码
但它只会解决一个设备(self.selectedService objectAtIndex:0)。那么我如何解决多个对等地址/如何为多个设备建立连接。所以我的疑问是:-
- 是否可以通过 WiFi 同时连接多个设备?
- 如果是,同一模式下最多可以连接多少台设备?
- 哪种类型的 CFSocket 对多连接(TCP/UDP)有用?
- 是否需要在每个对等方中创建多个 CFSocket?
- 如果是,如何?他们有任何可用的文件吗?
- 是否需要建立会话?
- 如何解析多个设备的地址?
objective-c - NSNetService 委托和 ARC
在我的应用程序中执行以下操作不会调用委托:
我正在使用自动引用计数。在没有 ARC 的情况下做同样的事情是完美的。在调用委托之前释放 NSNetService 接缝。
我怎样才能防止这种情况发生?
非常感谢!
ipad - 什么导致错误 NSNetServicesErrorCode = "-72000"?
我创建了一个简单的浏览器,可以使用 UIWebview 加载本地文件。起初,当我尝试预览 html 文件时,uiwebview 可以加载源文件并进行预览。但是在我最小化应用程序(应用程序进入后台),然后再次打开应用程序后,我收到了这个错误:
之后,uiwebview 无法加载源文件,当我登录错误时(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
,它显示此消息:
该应用程序没有崩溃,但旋转指示器永远不会停止。
有人能告诉我是什么原因导致这个案子吗?以及如何解决?
谢谢 :)
ios - NSNetService/Bonjour 发现仅适用于 iPhone 模拟器
我正在开发一个需要基本客户端/服务器交互模型的 iPhone 应用程序。为此,我将使用 Bonjour 和 NSNetService,以及 NSNetServiceBrowser 来发现同一网络上的其他人。我遵循了几个不同的指南,它们或多或少具有相同的示例代码。
相关服务器代码
服务发布成功,即我得到 netServiceDidPublish: 回调
相关浏览器代码
现在这一切的结果很有趣:
- 在 iPhone 上运行,设备只能看到自己发布的 NSNetService。
- 在两台 iPhone 上运行,两台设备都看不到对方的 NSNetService。
- 在 iPhone Simulator 上运行,它会找到所有的 NSNetServices,包括它自己的。
iPhone模拟器截图
我在这里有点不知所措......模拟器完全按预期工作。但是在设备上却不是,我不能让 2 部不同的 iPhone 在同一个 WiFi 上看到对方,他们只能看到自己。知道这里发生了什么吗?
iphone - 客户未发现 bonjour 服务
我刚刚开始学习设计 iphone 应用程序,并且正在尝试设置客户端服务器环境。作为初学者,我想首先确保我发布的服务对客户端是可见的。我在 Apple 文档的帮助下编写了服务器和客户端代码。但是,我发现虽然我的服务正在发布(调用了 netServiceWillPublish(NSNetService *)sender),但我的客户端并未识别此服务。在客户端调用委托函数 netServiceBrowserWillSearch:(NSNetServiceBrowser *)browser 使我相信客户端正在搜索服务。但是 didFindService 委托函数永远不会被调用。我很困惑为什么这不起作用。我已经从各个地方遵循了客户端的示例代码,并且我的代码与他们的代码相匹配。
我还有以下问题
服务名称(随传输层协议一起提供)可以是任何字符串吗?还是必须在http://www.dns-sd.org/ServiceTypes.html中指定。除了服务发现之外,这还有什么目的。
当我在服务器端打印出 NSNetService 对象的详细信息时(在设置套接字并启动服务之后),主机名被打印为(null)并且没有显示地址。从技术上讲,当服务打开时,这些不应该设置为值吗?如果是的话,有人可以告诉我我的代码哪里出错了吗?
我已经附加了我的项目的客户端和服务器代码块,其中完成了服务的发布和浏览。非常感谢您的帮助,因为我一直在处理这个问题。
这是浏览服务的客户端的代码片段
这是发布服务的服务器端的代码片段
这是告诉服务已发布并打印出我的 NSSocket 对象的详细信息的代码片段
谢谢维韦克
_
cocoa - 为什么我无法连接到苹果 _apple-midi._udp。使用 NSNetService 的 NetService?
在苹果发布的 bonjour 网络服务 _apple-midi._udp 上打开输入流时收到错误消息。我收到以下错误:错误域 = NSPOSIXErrorDomain 代码 = 61“操作无法完成。连接被拒绝”用户信息 = 0x100358780 {}。
Apple 是否对试图以这种方式访问 MIDI 流的人不满意?我正在尝试创建客户端可以从中选择的 midi 网络流的可发现列表。通过 MacOSX 连接时,我试图从等式中删除 Audio Midi Setup 应用程序。
谢谢,
帕特里克
iphone - 通过 NSNetService 连接和发送数据
我正在尝试使用 NSNetService 在 iPhone 应用程序和 Mac 应用程序之间建立通信。
我已经设置了 Mac 应用程序以发布 iPhone 应用程序可以发现的 NSNetService,但我不知道如何在它们之间发送数据。
在我的 Mac 应用程序中,我发布了我的 NSNetService:
一切看起来都很好,并且触发了委托方法- (void)netServiceDidPublish:(NSNetService *)sender
(在 Mac 应用程序中)。
在 iPhone 应用程序中,我创建了一个实例,NSNetServiceBrowser
一两秒后它触发了didFindService
委托方法。
紧接着它触发下一个委托方法- (void)netServiceDidResolveAddress:(NSNetService *)sender
。
这里不知道是connected还是not,can't find any connect method och connect state on sender
.
所以我尝试使用以下命令写入输出流:
并且还用 . 更新 TXTRecordData [sender setTXTRecordData:data];
。我没有收到任何错误,我的 Mac 应用程序也没有任何反应。Mac 应用程序具有委托方法- (void)netService:(NSNetService *)sender didUpdateTXTRecordData:(NSData *)data
。
我不知道该怎么做。我想我遗漏了一些东西,但我不知道它是在 Mac 应用程序还是 iPhone 应用程序中。我想我首先需要以某种方式从 iPhone 应用程序连接到 Mac 应用程序,然后在 Mac 应用程序中添加一些监听连接的东西。
iphone - 如何从 NetService 获取 IP 地址
当我得到一个 NetService 对象时,我尝试这样做:</p>
关于委托方法:</p>
谢谢。