全站数据
8 4 2 0 5 8 1

socket缓冲区有什么作用

消防员健康 | 简单学习,快乐成才!         
问题更新日期:2024-10-13 11:27:20

问题描述

socket缓冲区有什么作用求高手给解答
精选答案
最佳答案

每个 socket 被创建后,都会分配两个缓冲区,输入缓冲区和输出缓冲区。

write()/send() 并不立即向网络中传输数据,而是先将数据写入缓冲区中,再由TCP协议将数据从缓冲区发送到目标机器。

一旦将数据写入到缓冲区,函数就可以成功返回,不管它们有没有到达目标机器,也不管它们何时被发送到网络,这些都是TCP协议负责的事情。

TCP协议独立于 write()/send() 函数,数据有可能刚被写入缓冲区就发送到网络,也可能在缓冲区中不断积压,多次写入的数据被一次性发送到网络,这取决于当时的网络情况、当前线程是否空闲等诸多因素,不由程序员控制。

read()ecv() 函数也是如此,也从输入缓冲区中读取数据,而不是直接从网络中读取。