我正在寻找一种让用户将内容从 iPhone 下载到计算机的简单方法。我见过其他应用程序实际上将 iPhone 变成了服务器,并为用户提供了一个 IP 地址,以便在他们的计算机上导航。我浏览了一些 Apple 样品,但没有什么与我想要的太相似。
那么,让服务器侦听 TCP 端口 80(更好的是 HTTP 服务器)并发送响应的最简单方法是什么?希望使用 Objective C 类,但如果没有可用的东西,我可以制作一个包装器。
我正在寻找一种让用户将内容从 iPhone 下载到计算机的简单方法。我见过其他应用程序实际上将 iPhone 变成了服务器,并为用户提供了一个 IP 地址,以便在他们的计算机上导航。我浏览了一些 Apple 样品,但没有什么与我想要的太相似。
那么,让服务器侦听 TCP 端口 80(更好的是 HTTP 服务器)并发送响应的最简单方法是什么?希望使用 Objective C 类,但如果没有可用的东西,我可以制作一个包装器。
Google Toolbox for Mac有一个名为GTMHTTPServer的类。
Deusty Designs 有一个名为CocoaHTTPServer的项目。
您不能使用端口 80,因为它需要 root 访问权限。
Cocoa 为客户端网络提供了很多支持,但对服务器端的支持不多。
在最低级别,您可以使用普通的 BSD 套接字。
下一个级别是 CoreFoundation(纯 C,但使用类似 Cocoa 的类型)。相关的 CoreFoundation API 是CFNetwork
,CFSocket
和CFStream
(CFStream
是可以通过网络获取其源的文件流——它不是 System V 风格的网络流)。
在 Objective-C 中,您可以查看NSStream
Objective-C 中的CFStream
.
O'Reilly 有一篇关于设置简单服务器的好文章。
他使用 NSFileHandle 和 NSSocketPort 来设置监听器并处理请求。他还介绍了直接使用 BSD 套接字的一些细节工作。过去,我对这种方法很幸运。
This was written back in 2006, and I haven't used this on an iPhone project yet, but the classes he uses are pretty common. I would give it a fighting chance of working for an iPhone project.