0

是否可以编写 C++ 代码来与服务器交互,但要在客户端执行,但要在浏览器上而不是在本机上执行?

例如,想象一下使用开源类来生成文件。但是因为您不希望所有这些工作都在服务器上完成,所以您在浏览器上运行它。

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

4

4 回答 4

0

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

于 2012-08-08T10:51:50.727 回答
0

这是个奇怪的问题。

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

如果您知道客户端计算机的配置(二进制文件必须在它们上运行),则可能。它还必须实现一些安全层——你不想让每个二进制文件都在客户端上运行(想象一下当一些恶意代码在客户端上运行时的中间人攻击)。

于 2012-08-08T10:52:29.777 回答
0

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

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

于 2012-08-08T11:04:57.087 回答
0

因此,如果您想在浏览器上工作,则有几种解决方案,然后将结果发布到服务器数据库中。

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

现在,对于问题的实质,有很多浏览器做密集工作的例子。这些应用程序中的大多数认为不是 C++,而是 Javascript。

如果您真的想专注于 C++(就像我过去所做的那样,在我问这个问题的时候,想为大学做点大事),那么您可以执行以下操作之一:

*使用谷歌本机客户端 (NaCl)。这是一个沙箱,用于在浏览器中高效、安全地运行编译的 C 和 C++ 代码,独立于用户的操作系统。*也许您应该查看 Emscripten,这是一个将 C 和 C++ 代码转换为 jaascript 的框架。这样,您可以让您的 C 或 C++ 二进制文件正常工作,并将它们翻译成 Javascript,以便它们也可以在浏览器中工作。

于 2015-04-16T14:10:54.870 回答