【发布时间】:2011-04-09 07:34:22
【问题描述】:
iOS(或 iPhone OS)是否支持通过 SMB 网络共享进行文件操作? 如果是这样,是否有任何文件说明如何执行此操作?
【问题讨论】:
iOS(或 iPhone OS)是否支持通过 SMB 网络共享进行文件操作? 如果是这样,是否有任何文件说明如何执行此操作?
【问题讨论】:
我以为我让它在 macbook 和我的 iPhone 模拟器之间工作,但是它从来没有对 Windows 机器上共享的文件夹工作。 /p>
【讨论】:
NSNetService 与基于 Bonjour 的服务发现有关。它与通过 SMB 协议进行实际通信无关。
self.netService = [[[NSNetService alloc] initWithDomain:@"10.212.19.121" type:@"_smb._tcp." name:@"lanmanserver"] autorelease]
【讨论】:
不确定 SMB,但我能够使用 SFTP 在越狱的 iPad 上读取/写入文件。操作系统版本 4.1、4.2、4.3。
附带说明一下,我认为这个问题需要澄清一下——您到底想做什么,以及您使用的是普通设备还是越狱设备。知道这些事情的人可能会有很大的不同。
【讨论】:
你也可以参考我的经验,我成功实现了一个 iOS 的 SMB 客户端:SMB/samba support on iOS?
【讨论】:
我使用 samba 包中的 libsmbclient 在 iOS 上进行 SMB 操作。 您可以查看我的项目https://github.com/kolyvan/kxsmb(libsmbclient 上的objective-c 包装器)。目前它支持一组有限的 SMB 操作。它主要用于浏览本地网络和从 SMB 共享中检索文件。
【讨论】:
libsmbclient 是 GPL,这意味着任何使用它的 iOS 应用程序也必须是 GPL。
iOS 没有任何 API 可用于 SMB。但是,SMB 目前已由 Microsoft 记录,并且实施它并非不可能(尽管也不容易)。我创建了一个免费软件项目,其中包含处理 SMB 所需的大部分内容。见
https://sourceforge.net/projects/smb4ios/
它不使用 Samba 或任何其他重量级库。主要适用于打印机,但有了已有的,很容易添加对文件处理或其他内容的支持。
我不关心 GPL 的东西,你可以重用代码而不用担心。只需检查我使用的 NTLM 库是否为您提供正确的许可证(或实现您自己的 NTLM)。
【讨论】: