【发布时间】:2017-04-25 03:22:30
【问题描述】:
C 代码中提到的缓冲区有什么区别
recvfrom(sock, buffer, 20, 0, (struct sockaddr *)&c_addr, &addr_size);
以及可以通过设置套接字选项调整其大小的缓冲区(在 C 中,但我认为其他编程语言具有相同的套接字选项)?
我的困惑来自于在 recvfrom 代码中称为“缓冲区”的缓冲区可以合理地称为接收缓冲区,这也是 TCP 中使用的缓冲区的名称。我想澄清一下 recvfrom 代码中提到的缓冲区是一种不同的缓冲区,也许有什么区别。
假设它们不同,就 5 层网络模型而言,第二种类型的缓冲区基本上仅用于传输层,并且通常不可在应用程序中修改(除了能够更改其一般属性,如大小)层?换句话说,TCP接收缓冲区中的数据是否向上传递到recvfrom代码中称为“缓冲区”的缓冲区?
【问题讨论】:
-
osi 与它无关,或与其他任何 20 年无关。让它安息吧。
标签: c networking tcp