位置:首頁 > 軟件操作教程 > 編程開發(fā) > C語言 > 問題詳情

C語言 close()函數和shutdown()函數

提問人:劉團圓發(fā)布時間:2020-12-03

在完成通信后,可以使用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)中的路徑名。

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

相關視頻回答
回復(0)
返回頂部