您所在的位置:读书频道 > 操作系统 > Linux > 13.3 UNIX domain中面向连接通信实现实例

13.3 UNIX domain中面向连接通信实现实例

2007-11-28 09:57 杜华 人民邮电出版社 字号:T | T
一键收藏,随时查看,分享好友!

《Linux编程技术详解》第13章的主要内容是Linux网络编程,本小节讲的是UNIX domain中面向连接通信实现实例。

AD:

13.3    UNIX domain中面向连接通信实现实例

第10章介绍了如何使用管道和命名管道进行进程间通信。管道由于只能实现具有亲缘进程的进程间通信,使用受到了很大的限制,命名管道解决了这一问题。但是,无论是管道还是命名管道,都只能实现单向通信(在只创建一个管道的情况下)。

使用套接字除了可以实现网络间不同主机间的通信外,还可以实现同一主机的不同进程间的通信,且建立的通信是双向的通信。这里所指的使用套接字实现进程间通信,是由将通信域指定为PF_UNIX来实现的。表13.1为socket函数的具体定义信息,该函数的形式如下:

    int socket(int domain, int type, int protocol);

socket函数中的domain参数用于指定通信域,表13.2为domain支持的通信域的参数。domain参数取PF_UNIX时,表示创建UNIX域的套接字。使用PF_UNIX域的套接字可以实现同一机器上的不同进程间的通信。

调用bind函数实现了套接字与地址(这里是文件名)的绑定。bind函数的具体信息如下:

    int bind(int sockfd, const struct sockaddr *my_addr, socklen_t addrlen);

其参数my_addr为指向结构体sockaddr_un的指针,该结构体的定义如下:

    #define UNIX_PATH_MAX 108
struct sockaddr_un {
sa_family_t     sun_family;     /*PF_UNIX或AF_UNIX */
char    sun_path[UNIX_PATH_MAX];        /* 路径名 */
};

在该结构体中,sun_family为AF_UNIX。sun_path是套接字在文件系统中的路径名。

【责任编辑:杜书 TEL:(010)68476606】


回书目   上一节   下一节

分享到:

关于UNIX domain  通信  套接字  Linux  Linux编程技术详解的更多文章

  1. Linux服务器配置全程实录
  2. 揭秘--优秀PPT这样制作

热点职位

更多>>

热点专题

更多>>

读书

非常网管——网络应用
在网络应用越来越复杂的今天,传统的网络应用已经不能满足企业和用户的需要,这就对网络管理员、信息管理部门提出了更高的要求。

最新热帖

更多>>

51CTO旗下网站

领先的IT技术网站 51CTO 中国首个CIO网站 CIOage 中国首家数字医疗网站 HC3i 51CTO学院 区块链第一聚合媒体 zhijiapro