socketpair函數是用來創建一對相互連接的套接字的,這對套接字可以用于雙向通信。這對套接字之間是全雙工通信的,可以同時進行讀寫操作。
使用socketpair函數創建的套接字對是同一個主機上的進程間通信的方式之一。該函數在調用成功后,會創建一對相互連接的套接字,并將這對套接字的文件描述符存儲在一個整型數組中,通過該數組可以訪問這對套接字。
下面是一個使用socketpair函數創建雙向通信的例子:
#include <sys/types.h>
#include <sys/socket.h>
int main() {
int sockfd[2];
if (socketpair(AF_UNIX, SOCK_STREAM, 0, sockfd) < 0) {
perror("socketpair");
exit(1);
}
// sockfd[0]和sockfd[1]是相互連接的套接字,可以進行讀寫操作
return 0;
}
在上面的例子中,socketpair函數創建了一對相互連接的套接字,并將它們的文件描述符存儲在sockfd數組中。接下來,我們可以使用sockfd[0]和sockfd[1]進行讀寫操作,實現進程間的雙向通信。