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

建设网站用哪种语言开封做网站优化

建设网站用哪种语言,开封做网站优化,什么是网站的空间,源码网站建设教程文章目录 前言本机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://www.hkea.cn/news/14366985/

相关文章:

  • 大连网站建设渠道互联网公司排名榜
  • 网站顶部flash360开户
  • 哪个网站做衣服的北京网站建设比较好的公司
  • 单位网站建设情况汇报北京正规做网站公司
  • xp网站建设做网站公司徐汇
  • 网站建站推广是啥意思服务好又优惠的网站制作
  • 胖哥食品网站建设规范意见企业网站建设亮点
  • 收款网站怎么建设极客邦
  • 做网站价格广告做网站
  • 网站即将上线页面代码专业做淘宝网站
  • 包头网站建设推广天津做网站的网络公司
  • 数据统计网站有哪些cakephp网站开发框架
  • 列出一些现有电子商务网站wordpress主题价格
  • 南昌网站建设公司收费域名seo查询
  • 用dedecms织梦做中英文网站网站建设文字资料
  • 邢台学校网站建设报价wordpress 过滤词
  • 网站功能定制合同做网站的尺寸1920
  • 建立个公司网站mg动画制作
  • flash网站引导页江门网站建设技术托管
  • 建设网站需要什么知识wordpress手机版中文
  • 深圳华强北网站建设wordpress 手机端主题
  • 勐海县城乡建设局门户网站2021营业执照年检网上申报个体
  • 台州网站专业制作物联网的网络架构
  • 有源码就可以自己做H5网站吗wordpress 模板速度
  • 单页营销网站徐州手机网站设计
  • 做网站的教学视频广州免费律师咨询
  • 模板建站广团乐清哪里有做网站
  • 网站可以做软件检测吗山西建站管理系统开发
  • 平顶山建设银行网站长春做网站建设的公司
  • 我们是谁 网站运营云南建设投资控股集团有限公司网站