ubus简介

news/2024/11/3 5:33:52/

1、简介

        ubus为openwrt平台开发中的进程间通信提供了一个通用的框架。它让进程间通信的实现变得非常简单。

        ubus实现的基础是unix socket,即本地socket,它相对于用于网络通信的inet socket更高效,更具可靠性。unix socket客户端和服务器的实现方式和网络socket类似。

2、如何实现一个简单的unix socket服务器和客户端

        2.1、建立一个socket server端,绑定到一个本地socket文件,并开启对clients连接的监听。

        2.2、建立一个或多个socket client端,连接server。

        2.3、client和server相互发送消息。

        2.4、client或server收到对方消息后,针对具体消息进行相应处理。

3、ubus通信框架

        ubus同样实现了上述组件,并对socket连接以及消息传输和处理进行了封装,

        ubus提供了一个socket server:ubusd。因此开发者不需要自己实现server端。

        ubus提供了创建socket client端的接口,并且提供了的客户端供用户直接使用:

4、ubus消息格式及有效通信的方式

ubus对client和server之间通信的消息为json格式,

ubus对client端的消息处理抽象出对象(object)”和“方法(method)”的概念。一个对象中包含多个方法,client需要向server注册自己的处理方法。对象和方法都有自己的名字,请求方只需在消息中指定要调用的对象和方法的名字即可。

5、ubus引用的一些动态库

         5.1、 libubus.so:创建socket,进行监听和连接,发送消息等接口函数。

         5.2、libubox.so:等待和读取消息。

         5.3、libblobmsg.so,libjson.so:提供了封装和解析json数据的接口,编程时不需要直接使用libjson.so,而是使用libblobmsg.so提供的更灵活的接口函数。

         使用ubus进行进程间通信不需要编写大量代码,只需按照固定模式调用ubus提供的API接口即可。


http://www.ppmy.cn/news/529746.html

相关文章

教培行业变天,宝宝巴士的上市之路还“巴适”吗?

夏季正值炎热,教育培训行业却迎来了凛冬。 近日,一则《关于进一步减轻义务教育阶段学生作业负担和校外培训负担的意见》 并明确指出:学科类培训机构一律不得上市融资,严禁资本化运作;上市公司不得通过股票市场融资投资…

巴士博弈

对于巴士博弈类的题目,往往直接求模就可以得到答案。 作为计算机学院的学生,Kiki和Cici打牌的时候可没忘记专业,她们打牌的规则是这样的: 1、 总共n张牌; 2、 双方轮流抓牌; 3、 每人每次抓牌的个数只能是2的幂次&a…

Bus了解与使用

Spring Cloud Bus 消息总线 简介Bus能干嘛?消息总线基本原理 RabbitMQ 环境配置Erlang 安装RabbitMQ安裝 动态刷新全局广播的设计思想和选型Bus 动态刷新全局广播配置实现Bus 动态刷新定点通知案例 简介 Spring Cloud Bus 将轻量级消息代理程序链接到分布式系统的节…

Carla交通管理器

1. 介绍 交通管理器(Traffic Manager,TM)用于在Carla中批量设置车辆的行为,以便更加真实的模拟现实世界中的交通场景。交通管理器由Carla客户端创建,运行在同步模式下。 2. 架构 交通管理器的运行逻辑大致为: 存储和更新当前模拟世界中的状…

快速公交BRT

【问题描述】 在城市里,快速公交(BRT)线路为一条直线,在其线路上有 n 个交叉路口,在每个路口都有一个交通信号灯,在红灯与绿灯之间周期性循环。在绿灯亮起持续 g 秒的期间,允许通行,…

ubus 介绍

转载https://www.cnblogs.com/gr-nick/p/10805608.html 一、 介绍 ubus提供了一种多进程通信的机制。存在一个守护进程ubusd,所以进程都注册到ubusd,ubusd进行消息的接收、分发管理。 ubus依赖于uboxubus启动后会在后台运行ubusd进程,该进…

公交车系统

#include <string.h> #include <malloc.h> #include <stdio.h> #include <iostream> using namespace std; typedef struct linknode { int num;//车号 char driver[50];//司机 char stime[50];//发车时间 char start[50];//起始站 …

Tableau伦敦巴士线路分析(一)线路地图

关注微信公共号&#xff1a;小程在线 关注CSDN博客&#xff1a;程志伟的博客 数据集见微信公共号链接 导入数据 a.将经度和纬度右键-地理角色-经度和纬度&#xff1b;就会发现#变成了圆形。 将经度放入列中&#xff0c;将纬度放入行中。 在工具栏中点击分析&#xff0c;聚合度量…