Unix Domain Socket – IPC通信机制
来源:互联网 发布:ubuntu浏览器不能上网 编辑:程序博客网 时间:2024/06/04 18:32
转:http://www.tuicool.com/articles/YzauUv
什么是Unix Domain Socket
基于socket的框架上发展出一种IPC机制,就是UNIX Domain Socket。虽然网络socket也可用于同一台主机的进程间通讯(通过loopback地址127.0.0.1),但是UNIX Domain Socket用于IPC 更有效率 :
- 不需要经过网络协议栈
- 不需要打包拆包、计算校验和、维护序号和应答等
只是将应用层数据从一个进程拷贝到另一个进程。这是因为,IPC机制本质上是可靠的通讯,而网络协议是为不可靠的通讯设计的。UNIX Domain Socket也提供面向流和面向数据包两种API接口,类似于TCP和UDP,但是面向消息的UNIX Domain Socket也是可靠的,消息既不会丢失也不会顺序错乱。
应用
UNIX Domain Socket是全双工的,API接口语义丰富,相比其它IPC机制有明显的优越性,目前已成为使用最广泛的IPC机制,比如X Window服务器和GUI程序之间就是通过UNIX Domain Socket通讯的。
Nginx通过unix:/socket与fastcgi连接,提升性能,比tcp socket要高效
1、在nginx.conf中修改配置为:fastcgi_pass unix:/tmp/php-cgi.sock;#fastcgi_pass 127.0.0.1:9000;2、在php-fpm.conf中修改配置为:/tmp/php-cgi.sock
通信过程
用Unix domain socket写的Demo
使用UNIX Domain Socket的过程和网络socket十分相似,也要先调用socket()创建一个socket文件描述符,address family指定为AF_UNIX,type可以选择SOCK_DGRAM或SOCK_STREAM,protocol参数仍然指定为0即可。通常是指定/tmp/目录下的一个文件作为通信路径
0 0
- Unix Domain Socket– IPC通信机制
- Unix Domain Socket – IPC通信机制
- IPC通信之UNIX Domain Socket
- UNIX Domain Socket IPC
- UNIX Domain Socket IPC
- Unix Domain Socket IPc
- UNIX Domain Socket IPC
- UNIX Domain Socket IPC
- UNIX Domain Socket IPC
- UNIX Domain Socket IPC
- UNIX Domain Socket IPC
- UNIX Domain Socket IPC
- UNIX Domain Socket IPC
- UNIX Domain Socket IPC
- UNIX Domain Socket IPC
- UNIX Domain Socket IPC
- UNIX Domain Socket IPC (sockaddr_un )
- UNIX Domain Socket IPC (sockaddr_un )
- Java面向对象编程(3)--抽象类,接口,final
- PHPmailer发送邮件成功,对方收不到邮件
- HDU5444——Elven Postman(2015年长春区域赛)
- Leetcode (287) Find the Duplicate Number
- javascript真的是异步的吗?且看setTimeout的实现原理以及setTimeout(0)的使用场景
- Unix Domain Socket – IPC通信机制
- java值传递和引用传递
- hdu 4118 Holiday's Accommodation 思维+树形dp
- 32单片机
- Android自定义控件实战——下拉刷新控件终结者:PullToRefreshLayout
- Python os 模块介绍
- UART0串口编程系列之前奏篇
- Java异常机制
- java设计模式 实验一-简单工厂模式