服务器上的C++代码,在客户端机器上运行

服务器上的C++代码,在客户端机器上运行

问题描述:

是否可以编写C++代码来与服务器接口,但要在客户端执行,而不是在浏览器上执行而不是本地?例如,想象一下使用开源类,以便生成一个文件。 但是,因为您不希望在服务器上完成所有这些工作,您可以在浏览器上运行它。服务器上的C++代码,在客户端机器上运行

为了让客户端提供一个或两个或两个以上的文件作为输入,然后代码运行在他的机器上,最终结果产生,然后这个文件被上传到服务器上的数据库。

+0

听起来很像http://boinc.berkeley.edu/(例如)。 – Nobody 2012-08-08 10:39:00

所以有几个解决方案,如果你想在浏览器上工作,然后把结果发布到服务器数据库中。

首先,您必须将您的服务器设置为数据库工作准备就绪。我已经使用MEAN堆栈完成了这个工作,设置了一个MongoDB并将它与Mongoose API进行了接口。

现在,对于这个问题的肉来说,有很多浏览器都在进行密集的工作。这些应用程序中的大多数认为不是C++,但它是Javascript。

如果你真的想专注于C++(像我一样,在过去,在一次我问这个问题,想使一些大的大学),那么你可以做下列之一:

*使用Google Native Client(NaCl)。这是一个用于在浏览器中高效并安全地运行编译的C和C++代码的沙箱,与用户的操作系统无关。 *也许你应该看看Emscripten,这是一个将C和C++代码翻译成jaascript的框架。这样,你可以让你的C或C++二进制文件工作,并将它们翻译成Javascript,以便让它们在浏览器中工作。

请参阅google本地客户端项目。 http://code.google.com/p/nativeclient/

这是个奇怪的问题。

您可以准备执行您希望在客户端完成的任务的二进制文件,并在请求时让服务器向客户端发送适当的二进制文件。然后客户端运行这个二进制文件并将结果返回给服

如果你知道客户端机器的配置(二进制文件必须在它们上面工作),那么这是可能的。此外,还必须实施一些安全层 - 您不希望允许在客户端上运行每个二进制文件(想象当客户端上运行某些恶意代码时的中间人攻击)。

我认为你的请求与服务器端编程背后的想法相矛盾。使用服务器端程序的主要目的是以受控的方式利用基础设施组件,如数据库,网络等。 (服务器端应用程序的最典型用法是使用JSP和ASP等服务器端编码的网站。)

由于服务器是要保持安全的机器,因此不应允许远程应用程序进行更改或访问文件系统。如果您想在服务器上执行更改(例如执行数据库操作或读取/写入文件),则应使用在服务器上运行的应用程序或提供Web服务或Web站点等接口到远程客户端应用程序。