如果您拥有客户端和服务器两者的控制权,并且您只能将客户端限制为OS X,那么第二个是Marc的答案. Cocoa的分布式对象是一项惊人的技术,使得RPC风格的客户端 – 服务器应用非常容易.
如果上述要求对您来说太限制,您还可以在Cocoa世界中使用许多选项:
>您可以使用PyObjC在Python中编写整个客户端应用程序.通过这种方法,您可以使用Python标准库中熟悉的标准网络代码. Twisted还可以很好地与Cocoa运行循环(PyObjC示例代码中的示例)集成在一起,并且在Cocoa应用程序中使用Twisted进行网络通信已经取得了很大的成功.如果您选择走这条路线,您可能需要在Objective-C中编写客户端应用程序,并将python代码作为插件加载(使用NSBundle). PyObjC的py2app可以从python代码编译可加载的bundle.
>您可以使用NSURLConnection进行基于HTTP的服务器的高级访问.
>降低抽象级别,可以使用Cocoa的NSStream实现您的网络协议.类文档是here,其中包含示例代码的链接,演示HTTP和SOAP协议.
>您可以进一步降低水平并使用CFNetwork类. NSStream基于CFNetwork,但是您使用CFNetwork对该行进行了较低级别的控制.
最后,用于客户端 – 服务器架构的Apple技术是WebObjects框架.