使用localsocket作为进程间的通信问题
Jneu 2021-03-30 07:31:02 自学Android ndk开发不久,使用localsocket作为进程间的通信方式
写了一个java的服务器端,目前正常工作。
写了一个c的jni接口的客户端,打包成apk发布,也能正常通信。
但是同样的代码用ndk-build直接编译成native app,就出错了,提示localsocket connect error。请问大家有什么好的建议吗?
int localsocket_client_init(const char *server_name)
{
int len;
struct sockaddr_un remote;
localsocket = socket(AF_UNIX, SOCK_STREAM, 0);
if (localsocket == -1)
{
MCINFO("localsocket init error \n");
return EXIT_FAILURE;
}
remote.sun_path[0] = '\0'; /* abstract namespace */
strcpy(remote.sun_path + 1, server_name);
remote.sun_family = AF_UNIX;
int nameLen = strlen(server_name);
len = 1 + nameLen + offsetof(struct sockaddr_un, sun_path);
if (connect(localsocket, (struct sockaddr *) &remote, len) == -1)
{
MCINFO("localsocket connect error \n");
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
}
在在ndk下又用c写了一个服务端,和之前的c客户端也能正常通信。