socketpair】的更多相关文章

转载:http://liulixiaoyao.blog.51cto.com/1361095/533469/ 今天跟人谈到socketpair的问题,晚上回来写了个程序验证下自己的猜测! 先说说我的理解:socketpair创建了一对无名的套接字描述符(只能在AF_UNIX域中使用),描述符存储于一个二元数组,eg. s[2] .这对套接字可以进行双工通信,每一个描述符既可以读也可以写.这个在同一个进程中也可以进行通信,向s[0]中写入,就可以从s[1]中读取(只能从 s[1]中读取),也可以在s…
管道和FIFO作为最初的UNIX IPC形式,现在已用得较少.SocketPair可作为全双工版本的管道,较为常用,这里简单做个笔记 管道 * 只用于有亲缘关系的进程间通信 * 单向,即半双工 (双向方法:1 使用2个管道 2 使用SocketPair) * pipe() => write()/read() FIFO (有名管道) * 可用于无亲缘关系的进程间通信 * 单向 * mkfifo() => open() => write()/read() SocketPair * 套接字(一…
socketpair函数概要例如以下:#include <sys/types.h>#include <sys/socket.h>int socketpair(int domain, int type, int protocol, int sv[2]);sys/types.h文件须要用来定义一些C宏常量.sys/socket.h文件必须包括进来定义socketpair函数原型.socketpair函数须要四个參数.他们是:套接口的域套接口类型使用的协议指向存储文件描写叙述符的指针 类…
Linux下socketpair介绍: socketpair创建了一对无名的套接字描述符(只能在AF_UNIX域中使用),描述符存储于一个二元数组,例如sv[2] .这对套接字可以进行双工通信,每一个描述符既可以读也可以写.这个在同一个进程中也可以进行通信,向sv[0]中写入,就可以从sv[1]中读取(只能从sv[1]中读取),也可以在sv[1]中写入,然后从sv[0]中读取:但是,若没有在0端写入,而从1端读取,则1端的读取操作会阻塞,即使在1端写入,也不能从1读取,仍然阻塞: Linux实现…
一.UNIX Domain Socket IPC socket API原本是为网络通讯设计的,但后来在socket的框架上发展出一种IPC机制,就是UNIX Domain Socket.虽然网络socket也可用于同一台主机的进程间通讯(通过loopback地址127.0.0.1),但是UNIX Domain Socket用于IPC更有效率:不需要经过网络协议栈,不需要打包拆包.计算校验和.维护序号和应答等,只是将应用层数据从一个进程拷贝到另一个进程.UNIX域套接字与TCP套接字相比较,在同一…
linux 进程间通信系列3,使用socketpair,pipe 1,使用socketpair,实现进程间通信,是双向的. 2,使用pipe,实现进程间通信 使用pipe关键点:fd[0]只能用于接收,fd[1]只能用于发送,是单向的. 3,使用pipe,用标准输入往里写. 疑问:在代码2里不写wait函数的话,父进程不能结束,但是在代码3里也没有写wait函数,父进程却可以结束??? 1,使用socketpair: #include <stdio.h> #include <stdlib…
一.双向通信(socketpair) socketpair()函数用于创建一对无名的.相互连接的套接子,如果函数成功,则返回0,创建好的套接字分别是sv[0]和sv[1]:否则返回-1,错误码保存于errno中. socketpair()函数的声明: #include <sys/types.h> #include <sys/socket.h> ]): 参数说明: 参数1(domain):表示协议族,在Linux下只能为AF_LOCAL或者AF_UNIX.(自从Linux 2.6.2…
#include <stdio.h>  #include <string.h>  #include <unistd.h>  #include <sys/types.h>  #include <error.h>  #include <errno.h>  #include <sys/socket.h>  #include <stdlib.h>    #define BUF_SIZE 300 int main() {…
Libevent设计的精化之一在于把Timer事件.Signal事件和IO事件统一集成在一个Reactor中,以统一的方式去处理这三种不同的事件,更确切的说是把Timer事件和Signal事件融合到了IO多路复用机制中. Timer事件的融合相对清晰简单,其套用了Reactor和Proactor模式(如Windows上的IOCP)中处理Timer事件的经典方法,其实Libevent就是一个Reactor嘛.由于IO复用机制(如Linux下的select.epoll)允许使用一个最大等待时间(即最…
一.UNIX Domain Socket IPC socket API原本是为网络通讯设计的,但后来在socket的框架上发展出一种IPC机制,就是UNIX Domain Socket.虽然网络socket也可用于同一台主机的进程间通讯(通过loopback地址127.0.0.1),但是UNIX Domain Socket用于IPC更有效率:不需要经过网络协议栈,不需要打包拆包.计算校验和.维护序号和应答等,只是将应用层数据从一个进程拷贝到另一个进程.UNIX域套接字与TCP套接字相比较,在同一…