如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
HYPERLINK"http://blog.csdn.net/ast_224/article/details/3962221"socket实现进程间通信分类:HYPERLINK"http://blog.csdn.net/ast_224/article/category/484780"socket编程2009-03-0610:314775人阅读HYPERLINK"http://blog.csdn.net/ast_224/article/details/3962221"\l"comments"评论(2)HYPERLINK"javascript:void(0);"\o"收藏"收藏HYPERLINK"http://blog.csdn.net/ast_224/article/details/3962221"\l"report"\o"举报"举报使用socket实现进程间通信:(UNIXdomain中面向连接通信)使用套接字除了可以实现网络间不同主机间的通信外,还可以实现同一主机的不同进程间的通信,且建立的通信是双向的通信。manunix内容如下:NAME(名称)unix,PF_UNIX,AF_UNIX,PF_LOCAL,AF_LOCAL?用于本地内部进程通讯的套接字。SYNOPSIS(总览)#include<sys/socket.h>#include<sys/un.h>unix_socket=socket(PF_UNIX,type,0);error=socketpair(PF_UNIX,type,0,int*sv);DESCRIPTION(描述)PF_UNIX(也称作PF_LOCAL)套接字族用来在同一机器上的提供有效的进程间通讯.Unix套接字可以是匿名的(由socketpair(2)创建),也可以与套接字类型文件相关联.Linux还支持一种抽象名字空间,它是独立于文件系统的.有效的类型有:SOCK_STREAM用于面向流的套接字,SOCK_DGRAM用于面向数据报的套接字,其可以保存消息界限.Unix套接字总是可靠的,而且不会重组数据报.Unix套接字支持把文件描述符或者进程的信用证明作为数据报的辅助数据传递给其它进程.ADDRESSFORMAT(地址格式)unix地址定义为文件系统中的一个文件名或者抽象名字空间中的一个单独的字符串.由socketpair(2)创建的套接字是匿名的.对于非匿名的套接字,目标地址可使用connect(2)设置.本地地址可使用bind(2)设置.当套接字连接上而且它没有一个本地地址时,会自动在抽象名字空间中生成一个唯一的地址.#defineUNIX_PATH_MAX108structsockaddr_un{sa_family_tsun_family;/*AF_UNIX*/charsun_path[UNIX_PATH_MAX];/*路径名*/};sun_family总是包含AF_UNIX.sun_path包含空零结尾的套接字在文件系统中的路径名.如果sun_path以空零字节开头,它指向由Unix协议模块维护的抽象名字空间.该套接字在此名字空间中的地址由sun_path中的剩余字节给定.注意抽象名字空间的名字都不是空零终止的.SOCKETOPTIONS(套接字选项)由于历史原因,这些套接字选项通过SOL_SOCKET类型确定,即使它们是PF_UNIX指定的.它们可以由setsockopt(2)设置.通过指定SOL_SOCKET作为套接字族用getsockopt(2)来读取.SO_PASSCRED允许接收进程辅助信息发送的信用证明.当设置了该选项且套接字尚未连接时,则会自动生成一个抽象名字空间的唯一名字.值为一个整数布尔标识.ANCILLARYMESSAGES(辅助信息)由于历史原因,这些辅助信息类型通过SOL_SOCKET类型确定,即使它们是PF_UNIX指定的.要发送它们,可设置结构cmsghdr的cmsg_level字段为SOL_SOCKET,并设置cmsg_type字段为其类型.要获得更多信息,请参看cmsg(3).SCM_RIGHTS为其他进程发送或接收一套打开文件描述符.其数据部分包含一个文件描述符的整型数组.已传文件描述符的效果就如它们已由dup(2)创建过一样.SCM_CREDENTIALS发送或者接收unix信用证明.可用作认证.信用证明传送以structucred辅助信息的形式传送.structucred{pid_tpid;/*发送进程的进程标识*/uid_tuid;/*发送进程的用户标识*/gid_tgid;/*发送进程的组标识*/};发送者确定的信用证明由内核检查.一个带有有效用户标识0的进程允许指定不与其自身值相匹配的值.发送者必须确定其自身的进程标