Chinaunix首页 | 论坛 | 博客
  • 博客访问: 318754
  • 博文数量: 71
  • 博客积分: 1450
  • 博客等级: 上尉
  • 技术积分: 762
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-14 13:31
文章分类

全部博文(71)

文章存档

2014年(3)

2013年(8)

2011年(9)

2010年(38)

2009年(13)

我的朋友

分类: Android平台

2013-05-29 22:29:21


##############################################
目的:实现本地 C程序与apk的socket通信。
原理:没有涉及到网络通信,所以使用Android封装的local socket要更简单
参考:系统源码RIL模块
整理:Andy.xie
###############################################

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( SOCKET_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.
阅读(8470) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~