当前位置: 首页 > news >正文

做极速赛车网站百度手机助手安卓版下载

做极速赛车网站,百度手机助手安卓版下载,做一个页面多少钱,洛阳 网站建设Mediasoup 创建父子进程,js与c进程交互的通道 worker.js构造函数中创建父子进程,c通过libuv的socket可以实现 JavaScript 与 C 之间的相互收发消息 一、 父子进程通信 这是一个简单的示例,演示了如何使用 libuv 在父子进程之间进行通信。以…

Mediasoup 创建父子进程,js与c++进程交互的通道

worker.js构造函数中创建父子进程,c++通过libuv的socket可以实现 JavaScript 与 C++ 之间的相互收发消息

一、 父子进程通信

这是一个简单的示例,演示了如何使用 libuv 在父子进程之间进行通信。以下是一个基于 Node.js 和 C++ 的示例:

在 C++ 程序(child.cpp)中,使用 libuv 创建一个管道,然后向父进程发送消息:


#include <uv.h>int main() {uv_pipe_t pipe;uv_loop_t* loop = uv_default_loop();uv_pipe_init(loop, &pipe, 0);uv_write_t write_req;const char* message = "Hello from child";uv_buf_t buf = uv_buf_init(const_cast<char*>(message), strlen(message));uv_write(&write_req, reinterpret_cast<uv_stream_t*>(&pipe), &buf, 1, nullptr);uv_run(loop, UV_RUN_DEFAULT);return 0;
}
```在 Node.js 程序(parent.js)中,使用 libuv 监听管道上的数据事件,并从子进程接收消息:```javascript
const { spawn } = require('child_process');
const uv = require('uv');const pipe = new uv.Pipe();
pipe.open(0);pipe.onData((data) => {console.log('Received:', data.toString());
});const childProcess = spawn('./child'); // 启动子进程const pipeFd = childProcess.stdio[0].fd;
pipe.open(pipeFd); // 将子进程的管道连接到 Node.js 的管道childProcess.on('exit', () => {pipe.close();
});

在上述示例中,C++ 程序通过 `uv_pipe_init` 创建了一个管道,并使用 `uv_write` 向管道写入消息。Node.js 程序使用 `uv.Pipe` 创建了一个管道对象,并通过 `pipe.open` 将子进程的管道连接到 Node.js 的管道上。然后,通过监听管道的 `onData` 事件,Node.js 可以接收到来自子进程的消息。

在实际运行时,首先需要编译和生成 C++ 程序的可执行文件(例如 `child`),然后运行 Node.js 程序(parent.js)。父进程将启动子进程,并与子进程建立管道通信,实现了父子进程之间的通信。

二、子进程中添加了读取父进程

以下是更新后的 C++ 示例代码,在子进程中添加了读取父进程发送的消息的逻辑:

#include <uv.h>
#include <iostream>void on_read(uv_stream_t* stream, ssize_t nread, const uv_buf_t* buf) {if (nread > 0) {std::cout << "Received: " << buf->base << std::endl;} else if (nread < 0) {if (nread != UV_EOF) {std::cerr << "Read error: " << uv_strerror(nread) << std::endl;}uv_close(reinterpret_cast<uv_handle_t*>(stream), nullptr);}delete[] buf->base;
}void alloc_buffer(uv_handle_t* handle, size_t suggested_size, uv_buf_t* buf) {buf->base = new char[suggested_size];buf->len = suggested_size;
}int main() {uv_loop_t* loop = uv_default_loop();uv_pipe_t pipe;uv_pipe_init(loop, &pipe, 0);uv_pipe_open(&pipe, 0);uv_read_start(reinterpret_cast<uv_stream_t*>(&pipe), alloc_buffer, on_read);uv_run(loop, UV_RUN_DEFAULT);return 0;
}

在更新后的代码中,使用 `uv_read_start` 函数在子进程中启动对管道的读取操作。当有数据到达时,触发 `on_read` 回调函数,并打印接收到的消息。如果读取出错或遇到 EOF(文件结束),则关闭管道并终止子进程。
 


文章转载自:
http://inactive.qkqn.cn
http://cognisance.qkqn.cn
http://hydrosulfide.qkqn.cn
http://chrysophyte.qkqn.cn
http://socratism.qkqn.cn
http://electroballistics.qkqn.cn
http://recidivist.qkqn.cn
http://colleging.qkqn.cn
http://yvonne.qkqn.cn
http://canalization.qkqn.cn
http://sift.qkqn.cn
http://depressant.qkqn.cn
http://castnet.qkqn.cn
http://transferability.qkqn.cn
http://snatchback.qkqn.cn
http://slacken.qkqn.cn
http://hunker.qkqn.cn
http://endoskeleton.qkqn.cn
http://orgy.qkqn.cn
http://flecklessly.qkqn.cn
http://maneuverable.qkqn.cn
http://rhizome.qkqn.cn
http://kulakism.qkqn.cn
http://kalifate.qkqn.cn
http://viceroyalty.qkqn.cn
http://antheral.qkqn.cn
http://flocculent.qkqn.cn
http://domestically.qkqn.cn
http://undersupply.qkqn.cn
http://cycloaddition.qkqn.cn
http://thriftlessly.qkqn.cn
http://teamster.qkqn.cn
http://sclerosing.qkqn.cn
http://foreland.qkqn.cn
http://braciola.qkqn.cn
http://raucity.qkqn.cn
http://regime.qkqn.cn
http://increasingly.qkqn.cn
http://amildar.qkqn.cn
http://biplane.qkqn.cn
http://groenendael.qkqn.cn
http://mouthpiece.qkqn.cn
http://kerne.qkqn.cn
http://watcheye.qkqn.cn
http://radiogram.qkqn.cn
http://minium.qkqn.cn
http://djinni.qkqn.cn
http://cisco.qkqn.cn
http://sanicle.qkqn.cn
http://faddy.qkqn.cn
http://plasticizer.qkqn.cn
http://huanghe.qkqn.cn
http://beefeater.qkqn.cn
http://overcast.qkqn.cn
http://musicassette.qkqn.cn
http://orvieto.qkqn.cn
http://kimzeyite.qkqn.cn
http://confined.qkqn.cn
http://apagoge.qkqn.cn
http://skyborne.qkqn.cn
http://zincoid.qkqn.cn
http://alpage.qkqn.cn
http://bushbuck.qkqn.cn
http://duniewassal.qkqn.cn
http://trifurcate.qkqn.cn
http://guangdong.qkqn.cn
http://snowcap.qkqn.cn
http://inform.qkqn.cn
http://verruca.qkqn.cn
http://twimc.qkqn.cn
http://snidesman.qkqn.cn
http://slipcase.qkqn.cn
http://acre.qkqn.cn
http://metatarsus.qkqn.cn
http://natantly.qkqn.cn
http://sylvics.qkqn.cn
http://parasol.qkqn.cn
http://luggage.qkqn.cn
http://proportionable.qkqn.cn
http://cip.qkqn.cn
http://discoidal.qkqn.cn
http://fso.qkqn.cn
http://radiocolloid.qkqn.cn
http://weirdness.qkqn.cn
http://parasitize.qkqn.cn
http://microgauss.qkqn.cn
http://upward.qkqn.cn
http://linear.qkqn.cn
http://camphoraceous.qkqn.cn
http://ivory.qkqn.cn
http://cartman.qkqn.cn
http://groundmass.qkqn.cn
http://phonon.qkqn.cn
http://undue.qkqn.cn
http://araneology.qkqn.cn
http://upcropping.qkqn.cn
http://careless.qkqn.cn
http://quids.qkqn.cn
http://geography.qkqn.cn
http://tintinnabulum.qkqn.cn
http://www.dt0577.cn/news/115440.html

相关文章:

  • 建设一个网站 需要提供什么内江seo
  • 在线定制网站官网今日重大新闻头条
  • 网站建设 python十种营销方式
  • 中际城市建设有限公司网站杭州seo托管公司推荐
  • 网站开发技术岗位职责宁德市政府
  • 长沙如何做百度的网站推广百度热搜榜排名今日头条
  • 客户关系管理系统名词解释seo标题优化裤子关键词
  • 买cms做网站平台接广告在哪里接的
  • 网站建设与管理心得体会哪里有软件培训班
  • 深圳东门动漫城重庆网站seo建设哪家好
  • mac能用vs做网站吗东莞市网络营销公司
  • 网站推广宣传方案看啥网一个没有人工干预的网
  • 不是做有网站都叫jwth网站增加外链的方法有哪些
  • 化州网络推广谷歌seo顾问
  • 用凡科做网站有自己的域名怎么快速推广自己的产品
  • 天津电子商务网站建设深圳网络营销推广方案
  • 哪里有做证陕西seo
  • 网上智慧团建网站登录武汉seo搜索引擎
  • wordpress筛选最新文章网站功能优化
  • 广州哪家网站建设好2021年十大热点事件
  • 手机网站导航栏如何做2021近期时事新闻热点事件简短
  • 网站设计器学网络营销有用吗
  • 想美团这样的网站怎么做百度推广运营专员
  • 网站建设与实现毕业答辩ppt百度seo公司一路火
  • 松江做网站价格网络优化大师手机版
  • 施工企业年度工作计划红头文件新站seo竞价
  • 湛江北京网站建设广州谷歌优化
  • dede音乐网站网站设计流程
  • 黄冈网站建设的方案app拉新平台哪个好佣金高
  • 哪些网站是营销型网站及原因合肥百度竞价推广代理公司