【问题标题】:How to send data from Visual C++ application to iPhone app?如何将数据从 Visual C++ 应用程序发送到 iPhone 应用程序?
【发布时间】:2011-12-06 15:38:28
【问题描述】:

这个问题一定很基础,但如果您有任何指点,我将非常感谢任何帮助!

我有一个使用 Visual C++ 的 Windows 开发项目,并且想通过 Internet 将二进制数据(主要是图像,但也包括其他内容)发送到 iPhone 应用程序。

您知道如何做到这一点的最简单方法是什么?我是否应该在 iPhone 上使用 HTTP 和 NSUrlConnection 以及一些框架库(哪个?)在我的 Visual C++ 应用程序中设置 Web 服务器?或者我是否需要设置一个合适的网络服务器,比如 Apache(然后我如何让我的 C++ 应用程序与它通信??)

所以你看我对网络技术一无所知......如果你认为没有帮助我,我也会很感激书籍推荐:)

非常感谢和欢呼

【问题讨论】:

  • 您是否有一个 C++ 应用程序可以同时与所有 iphone 应用程序通信?还是每个 iphone app 用户都需要使用自己的 C++ 应用程序与自己的 iphone app 进行通信?
  • 在这第一步中只有一个 iPhone 和一个 C++ 应用程序:未来 C++ 应用程序可能服务于许多 iPhone,但为此我显然需要了解更多关于服务器技术的知识......暂时这只是为了了解基础知识。
  • 我正在考虑未来,这样我们就可以从一开始就进行正确的设计。如果我理解正确,您的 C++ 应用程序将为所有 iphone 应用程序提供服务,所以它基本上是一个服务器,对吧?没有它,iphone可以运行吗?
  • 没错,它将充当服务器,部署在本地或云环境中。客户端 iPhone(s) 将请求数据更新,C++ 应用程序通过计算响应这些更新。计算完成后,必须通知客户端(或轮询?)并从服务器拉取更新的数据。
  • 另一个重要问题.. 我们是否可以假设 c++ 应用程序与 iphone 应用程序位于同一个 wifi 网络中,或者假设 c++ 应用程序运行在具有知名域的 Internet 服务器上名称/静态 IP 地址?或者你不知道用户将在哪里运行 c++ 应用程序

标签: iphone visual-studio-2010 web-services client-server data-transfer


【解决方案1】:

另一个想法是使用一些云存储服务,例如 DropBox。此服务允许您保存文件并使用 HTTP 访问它们。如果您只需要 2GB,DropBox 也是免费的。

这里有用于为多个平台上传/下载文件的 API:http://www.dropbox.com/developers/reference/sdk

不幸的是,他们没有 C++ 的 API。但是由于 DropBox 只是基于 HTTP,因此您应该能够为此使用 libcurl 或任何其他 HTTP 库。这家伙遇到了一些困难Using libcurl to upload files to DropBox(虽然没有答案,但应该不会太难克服)

【讨论】:

  • 因此在此模型中,C++ 应用程序将生成数据,通过 HTTP 将它们发送到 DropBox,并让 iPhone 也通过 HTTP 访问它。整洁的!我想那里有一点往返时间,但开始这听起来像是一个选择。感谢指向 libcurl 的指针!
  • 这与其他答案非常相似,只是为您节省了一些实现服务器的工作(通过使用 DropBox)
【解决方案2】:

不确定您的 C++ 应用程序中的 Web 服务器是否是最好的主意。我会在 php/java/choose 你的毒药中实现一个简单的外部 Web 服务器。我会将 Web 服务器放在我要购买的域上的一些托管服务中。然后当然使用 HTTP 来管理两者之间的通信。 C++ 应用程序将通过 HTTP 将图像上传到 Web 服务器,而 iphone 应用程序将通过 HTTP 下载它们。

另外,如果您不想购买托管服务/域,请查看 Google AppEngine 等服务,只要您不过度使用它,它是免费的。

检查这个问题以从 C++ 发出 HTTP 请求:How do you make a HTTP request with C++?

【讨论】:

  • 我明白了,这已经很有帮助了。设置本地 Apache 服务器进行测试会更容易吗? (虽然从未这样做过。)
  • 如果您跳过像 Google AppEngine 这样的云解决方案,并决定在某些主机中实现一个 php 服务器,那么在您的计算机上安装 WAMP 并以 localhost 而不是访问网络服务器可能会更容易您将拥有的域名
  • 我只是想在我的机器上安装 WAMP(需要查找 :) 并通过本地 WLAN 访问它。我能想到的最简单的方法是让 C++ 应用程序将其图像存储到 HTTP 服务器可以访问的某个文件夹中,并让客户端从中读取。不确定向客户端传达更改的好方法是什么:在最简单的情况下,我可以定期轮询一些小文本文件...
  • 听起来不错。除了你可能会定期轮询一个简单的数据库而不是一个文本文件:) 这是一个实现文件上传位的 Java-PHP 示例 - stackoverflow.com/questions/1314249/…
  • 我明白了!所以我要么替换或 HTTP 上传更新的文件,然后用时间戳条目之类的东西修改 Web 服务器数据库?我知道 Apache 可以在后端使用 mysql,但是你如何从 C++ 修改它呢? - 很抱歉可能是非常基本的问题,非常感谢您的帮助!
【解决方案3】:

这应该让您开始使用 mysql DB 编写 PHP Web 服务并让 iOS 应用程序访问它:http://www.raywenderlich.com/2941/how-to-write-a-simple-phpmysql-web-service-for-an-ios-app

这大约是乐趣的一半,另一半基本上是用 c++ 做同样的事情(用 libcurl 或类似的东西)

【讨论】:

  • 啊,这就是现场。我一直在寻找(未成功)像这样的教程。
  • 关于本教程的一个小评论。我注意到他使用原始 SQL 命令手动创建了大部分数据库。使用用户友好的工具(如 phpmyadmin)创建和管理数据库可能会让您感觉更自在。它带有默认的 WAMP 安装,非常直观 + 几乎所有托管公司也会将它集成(在 cpanel 或类似的东西中)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-06-13
  • 1970-01-01
  • 2020-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-14
相关资源
最近更新 更多