android localsocket 实例,Android LocalSocket客户端无法连接到抽象命名空间中的本机服务套接字...

在尝试使用Android LocalSocket连接抽象命名空间中的服务时,遇到了'权限被拒绝'的问题。尽管在普通Linux环境下,不同权限级别的进程可以成功连接,但在手机上却遇到障碍。服务器端已成功创建并监听套接字,而客户端在连接时失败。问题可能涉及到Android的权限模型和套接字的访问控制。寻求解决方案,包括如何正确配置套接字权限或探索替代通信方式。
摘要由CSDN通过智能技术生成

我正在包装libril库并尝试从那里打开一个套接字。尝试在/ dev / socket中打开套接字失败,因为rild作为用户'radio'运行并且它没有权限,在抽象命名空间中打开套接字似乎没问题但是客户端(android app)在尝试时遇到“权限被拒绝”连接。我在普通Linux下创建了一个测试客户端和服务器,即使一个以root身份运行,另一个流程作为另一个组中的低权限用户,它们也会连接。

任何想法如何让这个在手机上工作?我在部分绑定和连接中抛光了代码,并且我给出了合适的长度。请注意,如果未正确配置套接字或服务器或客户端的长度不正确,则错误为“连接被拒绝”。现在我得到'权限被拒绝'。我会感谢所有的帮助,包括如何通过其他方式进行沟通的想法。

服务器:

#define SOCKET_ADDR "test.socket"

void* initSRV(void* dummy) {

int err = 0;

int fdListen = -1;

int fdConnect = -1;

int i;

char buf[4096];

struct sockaddr_un sock;

socklen_t len = 0;

memset(&sock, 'x', sizeof(struct sockaddr_un));

sock.sun_family = AF_UNIX;

sock.sun_path[0] = ' ';

strncpy(sock.sun_path+1, SOCKET_ADDR, strlen(SOCKET_ADDR));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值