我正在尝试创建一个客户端/服务器网络应用程序。客户端软件使用 Objective-C (Mac) 编写,服务器软件使用 Python (Linux) 编写。我想在任一端封装对象数据,并通过互联网将其发送到另一端。这将包括标准类型,如字符串、双精度和数据结构(数组、字典)以及二进制文件。
我的问题是,你会如何建议我这样做?什么技术有利于在两种不同的编程语言之间发送封装的数据,然后再进行转换?特别是Objective-C和Python?
Python 有 pickle/cPickle,它允许你获取 Python 对象并将它们封装到一个文件中,但是取消腌制它们会给你留下 Python 对象而不是 Obj-C 对象。我也见过 XML 和 JSON,尽管我仍然会遇到将对象转换的问题,例如将 Python 字典转换为 Obj-C NSDictionary,反之亦然。
从我收集到的信息来看,XML/JSON 可能很难与二进制数据一起使用,需要在封装之前先将其转换为文本。我可能会发送大量二进制数据(每个请求 50-100MB),因此文本转换会显着增加文件的大小,这是我想避免的。
谢谢你的帮助!