介绍
socketpair会创建两个网络文件系统的描述符socket[0]、socket[1] ,保存在一个二元数组中。用于双向的数据传输。
涉及函数
#define SOCKET_BUFFER_SIZE (32768U)
int sockets[2];
int bufferSize = SOCKET_BUFFER_SIZE;
// 1.创建socketpair
socketpair(AF_UNIX, SOCK_SEQPACKET, 0, sockets);
// 2.设置fd
setsockopt(sockets[0], SOL_SOCKET, SO_SNDBUF, &bufferSize, sizeof(bufferSize));
setsockopt(sockets[0], SOL_SOCKET, SO_RCVBUF, &bufferSize, sizeof(bufferSize));
setsockopt(sockets[1], SOL_SOCKET, SO_SNDBUF, &bufferSize, sizeof(bufferSize));
setsockopt(sockets[1], SOL_SOCKET, SO_RCVBUF, &bufferSize, sizeof(bufferSize));
特性
这个双向管道,socket[0]、socket[1] 都可读写:—— 在socket[0]写入,只能在socket[1]读出
—— 在socket[1]写入,只能在socket[0]读出