C語言 close()函數和shutdown()函數
在完成通信后,可以使用close()函數或shutdownO函數來關閉套接字。close()函數的調用形式為:
close(sockfd);
使用套接字除了可以實現網絡中不同主機間的通信外,還可以實現同一主機不同進程間的通信,且建立的通信是雙向的通信。這里所指的使用套接字實現進程間通信,是由將通信域指定為PF_UNIX來實現的。該函數的形式如下:
int socket(int domain, int type, int protocol);
socket()函數中的domain參數用于指定通信域,表16-2為domain支持的通信域的參數。domain參數取PFJJNIX時,表示創(chuàng)建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是套接字在文件系統(tǒng)中的路徑名。
點擊加載更多評論>>