我正在try 理解如何从相同的文件描述符读写数据.
network - socket
connect(sockfd, (struct sockaddr*)&servaddr, sizeof(servaddr)
write(sockfd, buff, large_buffer_size)
当程序/OS将数据写入文件描述符时,假设我们同时从服务器接收数据.
现在,我想知道如何确保数据没有损坏,即,当我们指向相同的文件描述符时,要写入的数据和要读取的数据不会混合在一起?
我正在try 理解如何从相同的文件描述符读写数据.
network - socket
connect(sockfd, (struct sockaddr*)&servaddr, sizeof(servaddr)
write(sockfd, buff, large_buffer_size)
当程序/OS将数据写入文件描述符时,假设我们同时从服务器接收数据.
现在,我想知道如何确保数据没有损坏,即,当我们指向相同的文件描述符时,要写入的数据和要读取的数据不会混合在一起?
套接字的不同寻常之处在于,它们通过单个文件描述符提供全双工通信.内核做的是使之平稳而正确地工作所需的工作,其中包括,是的,分别缓冲传出和传入的数据.从语义上讲,每个套接字确实将两个单独的通道绑定在一起,每个通道对应一个方向.您甚至可以相互独立地关闭这些频道.