文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Advanced IPC(2)

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

#include <sys/socket.h>
int socketpair(int domain, int type, int protocol, int sockfd[2]);
           Returns: 0 if OK, -1 on error

2、Naming UNIX Domain Sockets (1)socketpair()创建的socket没有名字,意味着不能被unrelated进程addressed(bind) (2)UDS的地址格式

#include <sys/un.h>
struct sockaddr_un {
    sa_family_t sun_family; // AF_UNIX
    char sun_path[108]; // pathname
};

当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)
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载