我正在研究 C/C++ 中的网络,所以套接字。 例如,我现在使用的是 firefox,我可以加载 10KB 页面和 30MB 页面。所以我假设我从 Web 服务器获得的所有数据都写入了某个缓冲区。但是该缓冲区的大小是固定的还是基于内容大小?
最佳答案
数据实际上是从一个缓冲区流到另一个缓冲区,最后在内存中结束。服务器通过磁盘缓冲区从磁盘读取并写入 TCP 网络缓冲区,其内核将其清空到网络接口(interface)缓冲区中。当数据跨越各种网络链接时,数据通过网络从一个缓冲区传输到另一个缓冲区。最终,它会在您的操作系统的 TCP 连接缓冲区中结束,您的浏览器会不断将其清空到主内存中的缓冲区中。这些缓冲区的大小各不相同,有些是固定的,有些是可变的。
关于c++ - Web 服务器缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12588196/