【问题标题】:Shared memory between C++ and JS programC++ 和 JS 程序之间的共享内存
【发布时间】:2013-05-09 13:32:27
【问题描述】:

我想在两个不同类型的程序之间使用共享内存; C++ 和 JavaScript。 C++ 程序应该写入内存,而 JS 程序应该同时从同一块内存中读取。有可能吗?

【问题讨论】:

  • 在哪个平台上? (跨平台?)你使用什么 JS 引擎,你是从 C++ 中使用库(即 JS 存在于同一个进程中)还是通过调用外部进程(即我们正在谈论进程间 -沟通)?
  • 在 linux 中使用 Extjs 引擎。首先运行js程序,通过调用外部进程调用c++程序,然后将响应返回给js程序。
  • 你可以打开一个套接字并将json写入它。
  • "...然后将响应返回给 js 程序" 这不需要共享内存。在 C++ 程序中,您可以简单地写入进程的标准输出 (cout),然后在执行进程的 JS 中将其读回。我不知道 API,但它应该可以这样。
  • 也许最好知道我想做什么,我想在页面上显示 ping 命令的响应。所以我用 popen() 执行 ping 命令,我想将响应返回给 js 应用程序而不从 c++ 应用程序返回。所以我决定使用共享内存。

标签: javascript c++ node.js shared-memory


【解决方案1】:

浏览器不能真正做到这一点。但是,有三种可能的方法可以实现您想要的:

  1. 构建一个 RESTful 服务,您的 C++ 发布到该服务会触发 Web 套接字以更新浏览器中的 JS。或者让 JS 轮询服务。

  2. 或者让您的浏览器页面嵌入一个 iFrame,该 iFrame 指向由您的 C++ 程序编写/更新的文件系统上的 HTML 页面。

  3. 或者假设这是一个 Intranet,您可以编写一个 ActiveX 控件,它允许 IE 执行任何操作。但是,当您使用 Linux 时,您必须使用 IEs4Linux 和/或 WINE。

希望这会有所帮助。

【讨论】:

  • 他说的很明显是nodejs
猜你喜欢
  • 2023-03-31
  • 2012-07-06
  • 1970-01-01
  • 2021-06-01
  • 2016-07-17
  • 2018-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多