我正在尝试使用sdbus(sd-bus?)创建一个dbus服务,它将使用代表套接字的fd进行响应。
我的客户端能够接收字符串和整数,所以我有基本知识。我正在寻找的是如何在响应消息中将fd打包为“h”类型。
答案 0 :(得分:1)
似乎没有必要的魔力。
服务器创建套接字并以最明显的方式回复客户端(伪代码):
fd = socket(AF_UNIX, SOCK_STREAM, 0);
sd_bus_reply_method_return(message, "h", fd);
客户端只需要复制()传入的fd,然后就可以访问它了:
int fd;
int dup_fd;
sd_bus_message_read(message, "h", &fd);
dup_fd = dup(fd);