一.移植
依赖glib-2.0 gobject-2.0 gio-2.0 gthread-2.0
libglib2
dbus->expat
二.使用方法,步骤
#define Server_NAME "org.sample.server.Test"
1.创建app
g_ipc_server_handle = nmp_ipc_create(Server_NAME);
2.挂接在总线上
2.1非阻塞信息挂载
ret = nmp_ipc_setup(g_ipc_server_handle, cb_ipc_server, cb_ipc_status, (void*)"server");
cb_ipc_server:接收到其他app发送的非阻塞消息时进入此函数
cb_ipc_status:挂载在总线上时,是成功挂载还是失败
serve:传给cb_ipc_server的参数
2.2需要阻塞信息时需要设置
nmp_ipc_set_blocking_callback(g_ipc_server_handle, cb_ipc_blocking_server);
cb_ipc_blocking_server:接收到其他app发送的阻塞消息时进入此函数
3.检查总线上当前app(client)和另外一个app(server)能否连上
nmp_ipc_check_connect(g_ipc_client_handle, Server_NAME)
g_ipc_client_handle:当前app的句柄
Server_NAME:总线上是否存在另外一个app
4.其中一个app(client)发送信息给某个app(server)时
4.1发送非阻塞信息
nmp_ipc_send(g_ipc_client_handle, data, Server_NAME);
data:要发送给server的数据
Server_NAME:要发送给哪个app
4.2发送阻塞信息
nmp_ipc_send_blocking (g_ipc_client_handle, data, Server_NAME, 20*1000, &ret_msg)
data:要发送给server的数据
20*1000:阻塞时长20s
ret_msg:接受到的返回信息
5.卸载挂载在总线上的app
nmp_ipc_close(g_ipc_server_handle);
三.使用例子
参照sample
进程间通讯之dbus通讯接口说明
最新推荐文章于 2025-05-28 16:52:15 发布