位置:首頁(yè) > 軟件操作教程 > 編程開(kāi)發(fā) > C語(yǔ)言 > 問(wèn)題詳情

C語(yǔ)言 close()函數(shù)和shutdown()函數(shù)

提問(wèn)人:劉團(tuán)圓發(fā)布時(shí)間:2020-12-03

在完成通信后,可以使用close()函數(shù)或shutdownO函數(shù)來(lái)關(guān)閉套接字。close()函數(shù)的調(diào)用形式為:

    close(sockfd);

使用套接字除了可以實(shí)現(xiàn)網(wǎng)絡(luò)中不同主機(jī)間的通信外,還可以實(shí)現(xiàn)同一主機(jī)不同進(jìn)程間的通信,且建立的通信是雙向的通信。這里所指的使用套接字實(shí)現(xiàn)進(jìn)程間通信,是由將通信域指定為PF_UNIX來(lái)實(shí)現(xiàn)的。該函數(shù)的形式如下:

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

socket()函數(shù)中的domain參數(shù)用于指定通信域,表16-2為domain支持的通信域的參數(shù)。domain參數(shù)取PFJJNIX時(shí),表示創(chuàng)建UNIX域的套接字。使用PF_UNIX域的套接字可以實(shí)現(xiàn)同一機(jī)器上不同進(jìn)程間的通信。


調(diào)用bind()函數(shù)實(shí)現(xiàn)了套接字與地址(這里是文件名)的綁定。bind()函數(shù)的具體信息如下:

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

其參數(shù)my_addr為指向結(jié)構(gòu)體sockaddr_un的指針,該結(jié)構(gòu)體的定義如下:

    #eflne UNIX_PATH_MAX 108

    struct sockaddr_un {

    sa_family_t sun_family;           /* PF_UNIX或AF_UNIX */

    char sun_path[UNIX_PATH_MAX];     /* 路徑名 */

    };

在該結(jié)構(gòu)體中,sun_family為AF_UNIX; sun_path是套接字在文件系統(tǒng)中的路徑名。

繼續(xù)查找其他問(wèn)題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部