我正在开发一个专有的iOS应用程序,它需要只在一台台式计算机上与python程序进行无线通信。在过去,我总是在台式计算机上设置一个http服务器,其中包含一个简单的协议,用于从iOS设备接收数据。 python程序接收此数据并更新其接口。任何人都可以推荐一种不同的方法,或者确认这是实现这种架构的实用方法吗?谢谢你的时间!
答案 0 :(得分:3)
这完全取决于您尝试构建的应用程序/系统。
如你所说,你可以使用服务器,例如RESTful API并让您的客户使用标准HTTP方法与其进行通信。
或者,您可以使用NSStream
和CSStream
在iOS
个应用内与桌面计算机上的TCP
服务器进行通信。保持与服务器的开放套接字连接将允许服务器立即向您发送有关事件的通知。您将需要输出流(NSOutputStream
)和输入流(NSInputStream
),以便您可以轻松并行地管理传出和传入通信。
一些有用的链接:
Introduction to Stream Programming Guide for Cocoa
How To Create A Socket Based iPhone App and Server
Tutorial: Building A Simple iOS TCP Socket Based App Client And Server
答案 1 :(得分:1)
这确实是一种实用的方法。根据角色,桌面或iOS设备可以是服务器(即,将iOS应用程序作为在非特权端口上运行的HTTP服务器没有任何问题。)
根据有效负载类型和性能要求,您可能希望查看与HTTP服务器不同的内容。我有积极的经验积累和iOS应用程序和Python脚本通过Google Protocol Buffers进行通信(iOS应用程序是服务器)。
根据您的问题,该应用程序是否供内部消费并不完全清楚;如果它适用于更广泛的受众群体,我建议您采用Bonjour或类似的发现协议来简化应用的配置(基本上,他们将能够"看到"彼此没有配置)。