c - 减少在套接字上发送的调用是否有意义?

标签 c sockets

目前正在使用套接字,我想知道减少对 send 的调用量以提高性能是否有意义。

据我了解,有一个发送缓冲区并且数据不会立即发送(?),但是我想知道内核在实际发送数据之前等待多长时间以及如果我多次调用 send 而不是一次?

最佳答案

对于 TCP,有一个由 Nagle algorithm 控制的发送缓冲区。 (以及它与来自接收器的 delayed acks 的交互)。

UDP 没有等效的延迟/缓冲机制。

您还没有说明您正在使用哪个协议(protocol),但如果是 TCP,您可能不需要执行任何操作。对于延迟敏感的代码,仍然值得缓冲写入以避免系统调用开销,但我想您已经知道这是否是您的情况。

关于c - 减少在套接字上发送的调用是否有意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57449107/

相关文章:

c - 动态分配并返回局部变量

c - 编译 C89 代码时传递给 gcc 的选项集是什么

java - HttpClient:如何从现有连接获取底层套接字?

python - 错误 - 值错误 : invalid literal for int() with base 10: ' '

scala - Akka scala-io 询问并等待响应

java - JUnit 测试卡在 clientSocket.accept()?

c - C编程:将char转换为int的函数不起作用

c - 用C语言交换号码系统?

c++ - 没有花括号的 "if" block 使后续的 "else if"嵌套

sockets - FTP 服务器如何恢复下载?