问题标签 [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.
macos - Mac:如何查看正在运行的网络服务列表?
我正在编写一个需要与 Mac 上正在运行的网络服务连接的应用程序。
问题是,我不知道服务叫什么,甚至不知道它使用什么端口。有没有办法在我的 Mac 上浏览所有正在运行的网络服务?
更多信息:
我正在连接一个 MIDI 网络会话(在“音频 MIDI 设置”下找到,存在于所有 OSX 安装中)。我认为这是一项网络服务是否正确?
我打算使用 NSNetServiceBrowser 来定位所有运行此服务的本地计算机。(这是最好的方法吗?)
非常感谢任何帮助 - 谢谢!
cocoa - NSNetService Bonjour 模仿 iPhoto
我正在尝试模仿 iPhoto 共享,并且已经使用 iPhoto 服务名称“_dpap._tcp.”发布服务。iPhoto 看到我的虚假“分享”,但它是灰色的。我正在查看网络流量以查看 iPhoto 是否正在寻找其他东西来启用它(使其成为非灰色),但似乎没有任何东西让我相信它真的是一个 bonjour 设置——我当我发布我的服务时我失踪了。
关于 iPhoto 可能正在寻找/需要启用它的任何想法?您认为这是 bonjour 设置还是 iPhoto 特有的设置?
iphone - 如何确定与 iPhone 的连接是蓝牙还是 WiFi?
我正在使用两个 iphone 之间的 bonjour netservice 创建连接。
我连接使用
但我不知道如何判断结果连接是否通过蓝牙。有没有办法确定IP地址......应该这样做。
我认为遵守 Apple 的人机界面指南很重要,因为如果通过 WiFi 进行连接,我有时需要更新状态栏中的网络活动指示器,但如果我在蓝牙中使用该指示器,它看起来可能会产生误导联系。(指示灯在 wifi 连接旁边,而不是蓝牙连接旁边)。
谢谢
iphone - 使用 NSNetService 类与 Windows 机器上共享的文件夹建立 SMB tcp ip 连接
我一直在尝试找出一种使用 iPhone 访问我的 Windows 共享文件夹的方法。所需的功能是我正在构建的更大企业应用程序的一部分。这里有人已经问过类似的问题但没有运气 - iOS 是否支持通过 SMB 进行文件操作?
现在,我找到了名为“ SimpleNetworkStreams ”的苹果开发者教程,它通过将 NSNetService 实例的类型设置为协议来使用 NSNetService 通过 tcp 使用 x-SNSUpload 协议x-SNSUpload._tcp
他们是这样做的——
因此,如果我只是在我的 macbook 上替换_x-SNSUpload._tcp
并_smb._tcp
运行 SMB 服务器。我运行以下命令集在我的 macbook 上启动 SMB
然后我可以将我 iPhone 中的图片传输到我的 macbook 的根目录。我希望对 Windows 机器上的共享文件夹做同样的事情。
共享文件夹的名称是“测试共享”。我已经在我的 Windows 机器中明确共享了我的“测试共享”文件夹,并且所有人都可以完全控制。代码的完整细节放在下面(更新后)
如果我在浏览器上直接输入“smb:\\10.212.19.121”,我就可以访问我的共享文件夹。它会打开 finder 应用程序,并让我选择挂载“临时共享”文件夹。
更新 -从上面取出的大量冗余文本以及关于 SimpleNetworkStreams 如何工作以及我进行了调整的更好的细节放在下面。
代码取自 - SimpleNetworkStreams -
- 打开我们要发送的文件的 NSInputStream 类型的流
- 正如苹果文档所说
“您可以直接创建一个 NSNetService 对象(如果您知道确切的主机和端口信息),也可以使用 NSNetServiceBrowser 对象来浏览服务。”
为托管 SMB 服务器的服务器实例化一个 NSNetService 对象
将 NSOutputStream 类型的输出流对象获取到 self.networkStream 中。
然后 NSOutputStream 委托捕获 NSStreamEventHasSpaceAvailable 我们在输入文件中缓冲的位置,然后将该缓冲区写入我们的 NSOutputStream 对象,即 networkStream
objective-c - 使用 NSNetService 连接到服务器但失败 - 自动套接字断开连接?
新的更简单版本的问题:
我正在尝试使用 Objective-C 客户端连接到 Bonjour 设备并与之通信,但在解析服务(服务器)时遇到了问题。最初我试图做一个更复杂的例子,但我发现即使指定了端口/ip,基本的套接字连接也不起作用。
我使用 cocoaAsyncSocket 库拥有最简单的代码:
这是我要连接的服务器(Python 脚本):
服务器永远不会看到传入连接。在客户端,错误变量具有值或某些东西——没有我所期望的。请帮忙?
OLD(更复杂的版本,使用相同的服务器):
我的调试输出基本上说服务已解决......然后我立即断开套接字。同时我的服务器坐在那里,没有看到传入的连接。
当我获得初始连接并打印出服务的名称时,我已经使用调试器进行了检查 - 然后它挂起,直到我按下继续,然后我立即断开套接字???
我对 Objective-C 和事件驱动编程非常陌生,所以也许我处理错了什么?我很感激任何建议!
客户端(调试器)输出:
服务器输出:
客户端代码(ClientController.m,基本上来自http://www.macresearch.org/cocoa-scientists-part-xxix-message):
iphone - 如何停止在 wifi 网络中搜索新设备的过程?
在我的 wifi 网络代码中,我正在使用NSNetServiceBrowser委托searchForServicesOfType它将开始在 domainString 指示的域中搜索指定类型的服务
[ self.netServiceBrowser searchForServicesOfType:类型 inDomain:domain]
我的案例类型是网络标识符(字符串:“ _tcp_wifi ”),域是“本地”(字符串)。
对于每个发现的服务,一个 -netServiceBrowser:foundService:moreComing: 消息被发送到 NSNetServiceBrowser 实例的委托。
- (void)netServiceBrowser:(NSNetServiceBrowser *)netServiceBrowser didFindService:(NSNetService *)service moreComing:(BOOL)moreComing { }
上面的委托将为发现的每个服务触发。
searchForServicesOfType委托将始终搜索新设备。但是我需要使用计时器在 2 分钟后停止搜索新设备的过程。是否可以这样做。是否有任何 NSNetServiceBrowser 委托来执行此操作?如果是的话,谁能告诉我这样做的好方法。
iphone - 对于每次发布,我怎样才能使我的设备名称独一无二?
我使用相同的域和名称发布我的 netService 对象一次。另一台设备发现我的服务为myService。
但是我再次使用相同的域和名称再次发布我的 netService 对象。另一个设备会将我的设计检测为myService(1)。
代码:
对于每次发布,我怎样才能使我的设备名称独一无二?
iphone - 我们如何从 NSNetService 类中删除已发布的服务?
如何从 NSNetService 类中删除已发布的服务?
任何人都可以告诉我这样做吗?
或需要始终让我的设备名称唯一(如果我完成了多次发布)
objective-c - NSNetService 工作正常,但无法获取主机名,解决导致错误
我正在使用 Bonjour 和 NSNetService 从我的 iPhone 发布服务器。这一切都按预期工作,我可以浏览我正在服务的页面等。但是,在 iPhone 上,我想显示主机名(即 URL,如“myDevice.local”),这样也可以输入在浏览器中手动添加地址(对于缺少 bonjour 发现服务的客户端很有用)。我的理解是调用方法 [myNetService hostName] 应该给我那个地址。但是,此调用始终返回 nil。我在某个论坛上读到我首先应该解析服务,但是 [myNetService resolve] 和 [myNetService resolveWithTimeout:10] 都调用了委托方法
有错误
这显然意味着它已经解决了。同样,这一切都是在我可以使用该服务时发生的。我还可以获得端口、域和服务类型。唯一的另一个奇怪的事情是调用 [myNetService 地址] 返回一个空数组。
我正在使用 SDK 3.1.3。有人知道我做错了什么吗?
iphone - 解析 NSNetService 时出错
我正在 iPhone 上创建一个通过 wi-fi 玩的棋盘游戏。
当设备 A 邀请设备 B 播放时(尝试解析 B 发布的 NSNetService),设备 B 可以接受或拒绝。
如果 B 拒绝,A 会收到通知,一切都很好。但是,如果 A 稍后再次尝试邀请 B,我的netService:didNotResolve:委托方法中会出现以下错误。
NSNetServicesErrorCode = -72003 NSNetServicesErrorDomain = 10
错误 -72003 表示NSNetServicesActivityInProgress ...我怎样才能让一个玩家多次“邀请”其他玩家?
我正在使用 AsynchSocket 库,谢谢!