在完成通信后,可以使用close()函数或shutdownO函数来关闭套接字。close()函数的调用形式为:
close(sockfd);
使用套接字除了可以实现网络中不同主机间的通信外,还可以实现同一主机不同进程间的通信,且建立的通信是双向的通信。这里所指的使用套接字实现进程间通信,是由将通信域指定为PF_UNIX来实现的。该函数的形式如下:
int socket(int domain, int type, int protocol);
socket()函数中的domain参数用于指定通信域,表16-2为domain支持的通信域的参数。domain参数取PFJJNIX时,表示创建UNIX域的套接字。使用PF_UNIX域的套接字可以实现同一机器上不同进程间的通信。
调用bind()函数实现了套接字与地址(这里是文件名)的绑定。bind()函数的具体信息如下:
int bind(int sockfd, const struct sockaddr *my_addr, socklen_t addrlen);
其参数my_addr为指向结构体sockaddr_un的指针,该结构体的定义如下:
#eflne 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是套接字在文件系统中的路径名。
已有 22658 名学员学习以下课程通过考试
最需教育客户端 软件问题一手掌握
去 App Store 免费下载 iOS 客户端
点击加载更多评论>>