Android local socket 进程间通讯实验

本文详细介绍了如何在本地C程序与APK之间通过socket进行通信,包括服务端和客户端实现步骤,并解释了不同命名空间的作用。
##############################################
目的:实现本地 C程序与apk的socket通信。
原理:没有涉及到网络通信,所以使用Android封装的local socket要更简单
参考:系统源码RIL模块
###############################################

C程序 服务端:

    1)  server_fd = socket_local_server (SOCKET_NAME_XXH,
                ANDROID_SOCKET_NAMESPACE_ABSTRACT, SOCK_STREAM);
2)  s_fdListen = listen(server_fd, 4);
3)  while((socket = accept(server_fd, NULL, NULL)) > 0)


C 客户端:

        1)  fd =socket_local_client(OCKET_NAME_XXH,
                ANDROID_SOCKET_NAMESPACE_ABSTRACT, SOCK_STREAM);
        2)  write(fd, "hello", 5);


JAVA 客户端:

        1)  localSocket = new LocalSocket();
        2)  localSocket.connect(new LocalSocketAddress(socketAddress));
        3)  OutputStream os = localSocket.getOutputStream();


Namespace:

LocalSocketAddress.Namespace  ABSTRACT  A socket in the Linux abstract namespace   
LocalSocketAddress.Namespace  FILESYSTEM  A socket named with a normal filesystem path.  
LocalSocketAddress.Namespace  RESERVED  A socket in the Android reserved namespace in /dev/socket. 

QQ 240136495

http://www.jsqj.cc 军事新闻 爱好者。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值