unix domain socket

来源:互联网 发布:淘宝怎么做刷手 编辑:程序博客网 时间:2024/04/20 02:10

      使用UNIX Domain Socket的过程和网络socket十分相似,也要先调用socket()创建一个socket文件描述符,address family指定为AF_UNIX,type可以选择SOCK_DGRAM或SOCK_STREAM,protocol参数仍然指定为0即可。

 

         UNIX Domain Socket与网络socket编程最明显的不同在于地址格式不同,用结构体sockaddr_un表示,网络编程的socket地址是IP地址加端口号,而UNIX Domain Socket的地址是一个socket类型的文件在文件系统中的路径,这个socket文件有bind()调用创建,如果调用bind()时该文件已存在,则bind()错误返回。

    这是和AF_LOCAL搭配使用创建本地套接字,是一种进行本地进程间IPC的方法

 

 

On Linux 2.4.22 and Solaris 9, the sockaddr_un structure is defined in the header <sys/un.h> as follows:

   struct sockaddr_un {
        sa_family_t sun_family;      /* AF_UNIX */
        char        sun_path[108];   /* pathname */
   };

On FreeBSD 5.2.1 and Mac OS X 10.3, however, the sockaddr_un structure is defined as

   struct sockaddr_un {
        unsigned char  sun_len;         /* length including null */
        sa_family_t    sun_family;      /* AF_UNIX */
        char           sun_path[104];   /* pathname */
   };

原创粉丝点击