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

销售推广案例网站岑溪网络推广营销

销售推广案例网站,岑溪网络推广营销,搜索引擎营销sem,莒县网页设计文章目录 前言本机DPDK IPC API介绍demo演示 前言 DPDK的主进程和辅助进程之间共享大页内存。关于DPDK多进程的支持文档介绍见#xff1a;47. 多进程支持。 本文介绍本机DPDK的主进程和辅助进程之间交换短消息的API的使用。 前置要求#xff1a;DPDK-Hello-World示例应用程… 文章目录 前言本机DPDK IPC API介绍demo演示 前言 DPDK的主进程和辅助进程之间共享大页内存。关于DPDK多进程的支持文档介绍见47. 多进程支持。 本文介绍本机DPDK的主进程和辅助进程之间交换短消息的API的使用。 前置要求DPDK-Hello-World示例应用程序 本机DPDK IPC API介绍 具体的API接口使用见API 手册。 第一种是消息。相关函数如下 int rte_mp_sendmsg (struct rte_mp_msg *msg)发送消息。辅助进程调用该函数发送单播消息到主进程。主进程调用该函数发送广播消息到所有辅助进程。 第二种是请求。相关函数如下 int rte_mp_request_sync (struct rte_mp_msg *req, struct rte_mp_reply *reply, const struct timespec *ts): 同步请求阻塞直到收返回内容可以设置等待时长。int rte_mp_request_async (struct rte_mp_msg *req, const struct timespec *ts, rte_mp_async_reply_t clb): 异步请求。不会阻塞。int rte_mp_action_register (const char *name, rte_mp_t action): 注册消息/请求到来时对应的响应函数。void rte_mp_action_unregister (const char *name): 取消注册的响应函数。int rte_mp_reply (struct rte_mp_msg *msg, const char *peer): 响应函数中调用该函数对请求做出回复。 不管时消息还是请求都需要填充rte_mp_msg这个结构体。要填充的字段列表如下 name- 消息名称。该名称必须与接收者的回调名称匹配。param- 消息数据最多 256 字节。len_param- 消息数据的长度。fds- 与数据一起传递的文件描述符最多 8 个 fd。num_fds- 要发送的文件描述符的数量。 可以看到主辅进程之间可以传递文件描述符这就很厉害了。消息一次最多传递256个字符传递数据能力有限。但是通过文件描述符(如socketpair创建的描述符)主辅进程通信起来就很方便了。 demo演示 不太会用大概写了一个demo(1)辅助进程发送消息给主进程其中包含一段字符串和一个文件描述符。(2)主进程收到消息后阻塞读取文件描述符。(3)辅助进程通过fd给主进程发送消息最后关闭fd(发送EOF)。 (4)可以结合epoll/libevent进一步提高代码的灵活性。 完整代码见仓库。 辅助进程代码如下。 #include common.h #include rte_eal.h #include rte_errno.hint main(int argc, char *argv[]) {int ret;// 创建pipe管道int fd[2];ret pipe(fd);if (ret 0) {fprintf(stderr, Failed to execute pipe function\n);return -1;}ret rte_eal_init(argc, argv);if (ret 0) {printf(Error message: %s\n, rte_strerror(rte_errno));return -1;}// 获取当前程序的名称char hello_msg_send[256];get_process_name(hello_msg_send, sizeof(hello_msg_send));strncat(hello_msg_send, :Hi, I am secondary.,sizeof(hello_msg_send) - strlen(hello_msg_send) - 1);// 构建发送消息struct rte_mp_msg hello;strncpy(hello.name, hello_register, sizeof(hello.name) - 1);strncpy(hello.param, hello_msg_send, sizeof(hello.param) - 1);hello.len_param strlen(hello_msg_send);hello.fds[0] fd[0];hello.num_fds 1;ret rte_mp_sendmsg(hello);if (ret 0) {printf(Error message: %s\n, rte_strerror(rte_errno));return -1;}// 通过pipe的fd,给primary发送内容const char *close_msg I(secondary) will close;int send_len strlen(close_msg);int n 0;while (n send_len) {n write(fd[1], close_msg n, sizeof(close_msg));}close(fd[1]);return 0; }主进程代码如下。 #include common.h #include rte_eal.h #include rte_errno.hint secondary_fd -1;int hello_msg_reply(const struct rte_mp_msg *msg, const void *peer) {printf(recv:);printf(%s\n, (char *)msg-param);printf(recv len %d\n, msg-len_param);secondary_fd msg-fds[0]; }int main(int argc, char *argv) {int ret rte_eal_init(argc, argv);if (ret 0) {printf(Error message: %s\n, rte_strerror(rte_errno));return -1;}rte_mp_action_register(hello_register, hello_msg_reply);while (secondary_fd 0) {sleep(1);}char buf[256];while (read(secondary_fd, buf, sizeof(buf) - 1)) {printf(%s\n, buf);}return 0; }运行输出如下。 sudo ./primary sudo ./secondary --proc-typesecondary# 主进程输入如下 recv:secondary:Hi, I am secondary. recv len 29 I(secondary) will close
http://wiki.neutronadmin.com/news/144342/

相关文章:

  • 个人宽带备案网站百货店怎么做网站送货
  • 新开传奇网站发布站文章网站模板哪个好
  • 宁波网站设计公司哪个好河南城乡和住房建设厅网站
  • 重庆网站建设技术外包wordpress修改 版权
  • 去哪个网站做农产品推广网站建设wuhan
  • 企业网站优化的方式商务网站策划书
  • 建设博客网站步骤合肥市建设局
  • 想发布oa网站 需要备案吗wordpress腾讯cos
  • 网站建设实训进程计划中信建设有限责任公司 乔锋 电话
  • 如何做漂亮的网站莆田网站建设制作
  • 做淘宝客网站需要什么要求江西省网站建设
  • 企业网站推广优化公司网络营销的发展趋势
  • 中小型企业网站优化推广建立网站的原因
  • 重庆响应式网站建设哪家有上海品牌logo设计公司
  • 上线了建的网站免费吗站酷网设计素材
  • 中国建设银行网站怎么改支付密码是什么将wordpress 搭建成一个公众网页
  • 帮企业外卖网站做推做利基网站用备案
  • 交三百能在网站上找兼职做的响应式网页设计方法
  • 哈尔滨网站制作维护九江有哪些免费推广网站
  • 陕西建设银行网站食品网站的功能定位
  • 滁州建设厅网站傻瓜式网站开发
  • 企业门户网站建设方案后台管理江岸区网站公司
  • 克隆网站后台科技创新小发明
  • 网站的前期推广免费域名注册教程
  • 杭州低价做网站平面设计网上自学
  • 要做网站照片怎么处理全国室内设计学校
  • 拼多多网站开发东莞短视频制作公司
  • 公司网站功能html网页设计小作业代码部分
  • 做网络销售哪些网站比较好购物网站公司要花费多少钱
  • 做网站需要几步公司怎么建设官网