Advanced IPC(2)
时间:2010-09-19 来源:blueelfmoon
UNIX Domain Sockets
1、概述
(1)用于同一机器IPC,比Internet domain sockets(也可用于同1机器IPC)更有效率,因为UDS只拷贝数据,没有协议执行,没有网络头的增加和移除,没有CRC,没有SEQ和ACK
(2)UDS像一个socket和pipe的交叉,提供stream和datagram接口;UDS服务是可靠的,信息不会丢失或者投递错序,可以用面向网络的socket接口,也可以用socketpair()创建一对unnamed, connected UDS
2、Naming UNIX Domain Sockets
(1)socketpair()创建的socket没有名字,意味着不能被unrelated进程addressed(bind)
(2)UDS的地址格式
当bind一个地址到UDS,系统创建1个S_IFSOCK类型的文件,用的名字跟sun_path指定的一样
此文件存在只是给client一个共同的socket name,不能打开,不能用于应用程序通信;
如果文件已经存在,则bind出错; socket关闭,此文件自动删除,一般使用前都会unlink它
3、Unique Connections
UNIX Domain Socket版本的
serv_listen()
serv_accept()
cli_conn()
(P598)
#include <sys/socket.h> |
#include <sys/un.h> |
相关阅读 更多 +