IPC socket android localsocket

一、基础概念

  • IPC

进程间通信;

  • soket:

通信机制。封装tcp/ip协议,提供通信接口;
ipc socket通信媒介有以下几种:
网络端口、文件系统、内存映射

  • domain socket

https://blog.csdn.net/guxch/article/details/7041052
1、address family为AF_UNIX
2、用文件路径表示地址:地址格式不同,用sockaddr_un,由bind调用创建,已存在则错误返回;显式调用bind
3、UNIX Domain socket的工作流程简述如下(与网络socket相同)
服务器端:创建socket—绑定文件(端口)—监听—接受客户端连接—接收/发送数据—…—关闭
客户端:创建socket—绑定文件(端口)—连接—发送/接收数据—…—关闭
发现UNIXDomain Socket与命名管道在表现上有很大的相似性,例如,UNIX Domain Socket也会在磁盘上创建一个socket类型文件。

  • 命名管道(以后补充)

  • localsocket:

1、android中localsocket属于unix-domain socket, 是socket衍生出的IPC;
2、localsoketimpl为localsoket和localserversoket的实现类,只支持AF_LOCAL类的socket
没有网络,所以地址不是ip地址和端口,用文件路径表示地址。localsocket支持文件系统和内存映射
https://blog.csdn.net/degwei/article/details/51477519
android 下localsocket可实现c-c c-java java-java之间的通信
通过name来区分,客户端和服务端必须有相同的name,一个name只有一个服务端运行

二、关于socket的各个接口解释

https://www.cnblogs.com/52php/p/5872596.html

  • socket属性:

1、域,通信中使用的网络介质
2、套接字类型,流和数据报
3、套接字协议:通常设为默认值

  • 套接字各接口:

1、创建套接字
返回一个描述值,可用于访问该套接字
type为套接字类型

int socket(int domain, int type, int protoc)

2、命名(绑定)套接字

int bind( int socket, const struct sockaddr *address, size_t address_len);

给socket创建的套接字命名,关联到一个地址(ip端口或文件路径)

3、创建套接字队列(监听)
创建一个队列保存未处理的请求。调用后,程序回一直监听端口或文件地址
backlog为队列长度,

int listen(int socket, int backlog);

4、接受连接

int accept(int socket, struct sockaddr *address, size_t *address_len);

客户端试图连接到套接字时才返回值,accept会阻塞直到有客户请求连接。accept会创建新的套接字与客户端通信,address为客户端地址。
5、请求连接
客户端请求连接到服务器

int connect(int socket, const struct sockaddr *address, size_t address_len);

参数socket指定的套接字连接到参数address指定的服务器套接字
6、close

通信过程
图侵删

三、android localsocket

学了好久终于到正题了
https://blog.csdn.net/xbalien29/article/details/8765235

intent
AIDL
http://blog.chinaunix.net/uid-20364597-id-3794822.html
https://blog.csdn.net/daozi22/article/details/53344134

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值