网上看了很多篇有关socket本地通信的示例,很多都是调通服务端和客户端通信功能后就没有下文了,不太实用,真正开发中遇到的问题以及程序稳定性部分没有涉及,代码健壮性不够,本系列(socket本地通信篇)会先直接调通linux...include #include #include #include #include <linux...void *)0; } int main(int argc,char **arg) { int servfd; int ret; servfd = socket(AF_LOCAL...servaddr, sizeof(servaddr)); strcpy(servaddr.sun_path+1, MYSOCKET_PATH); servaddr.sun_family = AF_LOCAL...&cileddr, sizeof(cileddr)); strcpy(cileddr.sun_path + 1, SOCKET_PATH); cileddr.sun_family = AF_LOCAL
作为后一命令(grep mysql)输入, 管道传数据是单向,如相互通信,要两个 2、命名管道 FIFO $ mkfifo myPipe(名) 用前要mkfifo 命令创建,指定管道名,数据先进先出1) 基于“Linux...Linux 内核中有MSGMAX 和 MSGMNB 消息和队列最大长,字节为单位 三、共享内存 解决 用户态与内核间的 消息拷贝 1、内存管理: 进程有自己独立的 虚拟内存空间 , 不同进程 的 虚拟内存...ps: 跟信号量虽然名字相似,用途完全不一样 1、Linux 操作系统, 为响应各种各样事件,提供几十种信号, kill -l 命令,查看所有 2、 给进程发送信号终端 输入组合键: Ctrl+C 产生...和 SOCK_STREAM,「本地数据报 socket 」类型是AF_LOCAL 和 SOCK_DGRAM。...本地 数据报 socket ,AF_LOCAL 和 SOCK_DGRAM。
进程间的通信方式主要有以下几种: 管道 消息队列 共享内存 信号量 信号 Socket 信号 Linux操作系统中,为了响应各种各样的事件,提供了很多信号,可以通过kill -l命令来查看所有的信号。...int socket(int domain, int type, int protocal) domain:指定协议族,AF_INET表示IPV4,AF_INET6表示IPV6、AF_LOCAL/AF_UNIX...本地Socket通信 本地Socket支持字节流和数据报两种格式: 对于本地字节流,socket类型为AF_LOCAL和SOCK_STREAM 对于本地数据报,socket类型为AF_LOCAL和SOCK_DGRAM
#include struct sockaddr_un { sa_family_t sun_family; /* AF_LOCAL */ char sun_path...[104]; /*可能是92~108*/ }; #include //创建两个连接起来的Unix域套接字 int socketpair(int family/*AF_LOCAL..., SOCK_STREAM, 0); memset(&server_addr, 0, sizeof(server_addr)); server_addr.sun_family = AF_LOCAL...; strcpy(server_addr.sun_path, LOCAL_STRPATH); lfd = Socket(AF_LOCAL, SOCK_STREAM, 0); Bind...; strcpy(server_addr.sun_path, LOCAL_STRPATH); udpfd = Socket(AF_LOCAL, SOCK_DGRAM, 0);
Foreground process 如何在程序杀死的清下重启进程-----SIGLE信号 思路 利用am命令,启动主进程的一个service SIGLE信号,通过SIGLE信号来判断程序是否被杀死 在Linux...) { pthread_t pt_t; pthread_create(&pt_t, NULL, thread_fun_signal, NULL); } 以上就是利用Android的linux...常用的协议族有,AF_INET(IPV4)、AF_INET6(IPV6)、AF_LOCAL(或称AF_UNIX,Unix域socket)、AF_ROUTE等等。...child_listen_msg(); } } int create_socket_server() { //1 创建socket对象 int listenId = socket(AF_LOCAL...struct sockaddr_un addr; while (1) { LOGE("客户端 父进程开始连接"); sockfd = socket(AF_LOCAL
pid_t childpid; socklen_t clilen; struct sockaddr_un cliaddr, servaddr; listenfd = socket(AF_LOCAL...} unlink(UNIX_STREAM_PATH); bzero(&servaddr, sizeof(servaddr)); servaddr.sun_family = AF_LOCAL...int argc, char **argv) { int ret, sockfd; struct sockaddr_un servaddr; sockfd = socket(AF_LOCAL..., SOCK_STREAM, 0); bzero(&servaddr, sizeof(servaddr)); servaddr.sun_family = AF_LOCAL; strncpy...char **argv) { int ret, sockfd; struct sockaddr_un cliaddr, servaddr; sockfd = socket(AF_LOCAL
AF_UNIX(又名AF_LOCAL) UNIX 套接字是我们所讲的套接字的第一个家族,并且拥有一个“家族名字”AF_UNIX (又名AF_LOCAL,在POSIX1.g标准中指定),它代表地址家族(address...因为这些套接字(AF_INET)的网络版本使用因特网协议(IP)来搜寻网络中的主机,所以整个系统通常结合这两种协议(TCP 和 IP) 来进行(当然,也可以使用 TCP 和本地[非网络的 AF_LOCAL...通过命令可以查看本机的网卡信息: Linux输入:ifconfig Windows:ipconfig 每一个IP地址包含两个部分:网络地址和主机地址 A类:7位网络号+主机24位 B类:14位+16...知名端口:从0到1023 例如:88端口分配给http、21分配给FTP 动态端口:1024~65535 在Linux/Mac系统下,可以在/etc/services文件中找到系统预留端口号,包括服务器
TCP来实现本地套接字 下面介绍通过TCP来实现本地套接字的过程 - 服务器端 创建套接字 int lfd = socket(AF_LOCAL, SOCK_STREAM, 0); 绑定 - struct...sockaddr_un serv; serv.sun_family = AF_LOCAL; //AF_UNIX/AF_LOCAL strcpy(serv.sun_path, "server.socket..."); —— 现在还不存在(linux下的文件后缀都是自己起的) bind(lfd, (struct sockaddr8)&serv, len); —— 绑定成功套接字server.socket文件就被创建...- send - recv - - 断开连接 - close(cfd); - close(lfd); -客户端 - - 创建套接字 int fd = socket(AF_LOCAL...,SOCK_STREAM, 0); - 绑定一个套接字文件 struct sockaddr_un client; client.sun_family = AF_LOCAL;
摘要 在linux下,使用socketpair函数能够创建一对套节字进行进程间通信(IPC)。...include int socketpair(int domain, int type, int protocol, int sv[2]); 参数1(domain):表示协议族,在Linux...下只能为AF_LOCAL或者AF_UNIX。...(自从Linux 2.6.27后也支持SOCK_NONBLOCK和SOCK_CLOEXEC) 参数2(type):表示协议,可以是SOCK_STREAM或者SOCK_DGRAM。...注意: 1、该函数只能用于UNIX域(LINUX)下。 2、只能用于有亲缘关系的进程(或线程)间通信。
Linux 内核提供了不少进程间通信的机制,我们来一起瞧瞧有哪些? 管道 如果你学过 Linux 命令,那你肯定很熟悉「|」这个竖线。...在 Linux 操作系统中, 为了响应各种各样的事件,提供了几十种信号,分别代表不同的意义。...Linux 对每种信号都规定了默认操作,例如,上面列表中的 SIGTERM 信号,就是终止进程的意思。...和 SOCK_STREAM,「本地数据报 socket 」类型是 AF_LOCAL 和 SOCK_DGRAM。...对于本地数据报 socket,其 socket 类型是 AF_LOCAL 和 SOCK_DGRAM。
前置知识文件描述符在 Linux 系统中,一切都看成文件,当进程打开现有文件时,会返回一个文件描述符。文件描述符是操作系统为了管理已经被进程打开的文件所创建的索引,用来指向被打开的文件。...len = sizeof(client); char buf[1024] = {0}; int recvlen; // 创建 socket server_fd = socket(AF_LOCAL..., SOCK_STREAM, 0); // 初始化 server 信息 serv.sun_family = AF_LOCAL; strcpy(serv.sun_path, "server.sock...len = sizeof(client); char buf[1024] = {0}; int recvlen; //创建socket client_fd = socket(AF_LOCAL...bind(client_fd, (struct sockaddr *)&client, sizeof(client)); //初始化server信息 serv.sun_family = AF_LOCAL
1.Unix域套接口地址结构 struct sockaddr_un { sa_family_t sun_family; /* AF_LOCAL */ char sun_path...socket.h> int socketpair(int family, int type, int protocol, int sockfd[2]); //返回: 成功返回0,出错返回-1 family必须为AF_LOCAL
]; char recv_buf[100]; /* * Create a pair of local sockets: */ z = socketpair(AF_LOCAL...,SOCK_STREAM,0,s); if(z == -1) { fprintf(stderr, “%s:socketpair(AF_LOCAL
这篇文章介绍在Linux下的socket编程,完成TCP服务器、客户端的创建,实现数据通信。...二、TCP协议介绍 在Linux应用层做编程,接触到是传输层协议,TCP/UDP,如果搞Linux网络驱动开发(网卡驱动),那么底层的网络协议就会接触的更多,协议只是一个数据格式的约定而已,自己也可以设计自己的协议...Linux下socket编程需要用到的相关函数: #include /* See NOTES */ #include int...socket(int domain, int type, int protocol); AF_UNIX, AF_LOCAL Local communication unix
socket(int domain, int type, int protocol); domain :指定通信协议族(protocol family/address) /usr/include/i386-linux-gnu...address families. */ #define AF_UNSPEC 0 #define AF_UNIX 1 /* Unix domain sockets */ #define AF_LOCAL... address families. */ #define PF_UNSPEC AF_UNSPEC #define PF_UNIX AF_UNIX #define PF_LOCAL AF_LOCAL...下面来看看FreeBSD的源码,linux 的实现差不多,有个小区别等会指出。...下面通过来分析几个调用来走一下上面的inet_create 函数(linux 下): 1) socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); protocol =
Channel使用等),支持Kernel/RTP之间的Task通信 COMP(Connection-Oriented Message Passing)协议使用标准的Socket API,Domain为AF_LOCAL
Linux进程间的通讯 Unix发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间通信方面的侧重点有所不同。...Linux则把两者继承了下来,如图示: [图1 Linux继承的进程间的通讯] 管道 管道的通信介质是文件,这种文件通常称为管道文件,两个进程利用管道文件进行通信时,一个进程为写进程,另一个进程为读进程...Linux系统中有两个宏定义: MSGMAX, 以字节为单位,定义了一条消息的最大长度。 MSGMNB, 以字节为单位,定义了一个队列的最大长度。...sun_family只能是AF_LOCAL或AF_UNIX,而sun_path是本地文件的路径。通常将文件放在/tmp目录下。 本地套接字的其他操作都与网络套接字相似。
Linux 文件系统 目录 说明 bin 存放二进制可执行文件 sbin 存放二进制可执行文件,只有 root 才能访问 boot 存放用于系统引导时使用的各种文件 dev 用于存放设备文件 etc...是超级管理员 localhost 表示主机名 ~ 表示当前目录(家目录),其中超级管理员家目录为 /root,普通用户家目录为 /home/chan $ 表示普通用户提示符,# 表示超级管理员提示符 Linux...test.tar.gz 文件搜索命令 locate:在后台数据库搜索文件 updatedb:更新后台数据库 whereis:搜索系统命令所在位置 which:搜索命令所在路径及别名 find:搜索文件或文件夹 用户和组 Linux
. */ #define ANET_NONE 0 #define ANET_IP_ONLY (1<<0) #if defined(__sun) || defined(_AIX) #define AF_LOCAL...const char *path, int flags) { int s; struct sockaddr_un sa; if ((s = anetCreateSocket(err,AF_LOCAL...)) == ANET_ERR) //在下边,简单调用而已,本地连接 return ANET_ERR; sa.sun_family = AF_LOCAL; //既然是本地连接,那就不多说了
Linux文件操作 Linux中,一切皆文件(网络设备除外)。 硬件设备也“是”文件,通过文件来使用设备。 目录(文件夹)也是一种文件。...boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件和镜像文件。...deb:deb是Device(设备)的缩写,该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。...系统会自动识别一些设备,例如U盘、光驱等,当识别后,Linux会把识别的设备挂载到这个目录下。...---- Linux文件的操作方式 文件描述符fd fd是一个大于等于0的整数。 每打开一个文件,就创建一个文件描述符,通过文件描述符来操作文件。
领取专属 10元无门槛券
手把手带您无忧上云