【发布时间】:2012-08-14 03:39:36
【问题描述】:
有谁知道 Unix 套接字在发送小块数据(几个字节)时的缓冲特性吗?
当我使用 TCP 套接字时,我可以禁用 Nagle 算法以防止数据传输中的延迟。但是 Unix 域套接字没有等效的功能(据我所知)。
【问题讨论】:
标签: c linux sockets buffering unix-socket
有谁知道 Unix 套接字在发送小块数据(几个字节)时的缓冲特性吗?
当我使用 TCP 套接字时,我可以禁用 Nagle 算法以防止数据传输中的延迟。但是 Unix 域套接字没有等效的功能(据我所知)。
【问题讨论】:
标签: c linux sockets buffering unix-socket
在 unix 域套接字上没有可用的 nagle 算法。
Unix 套接字通常被实现为操作系统内核中的内存缓冲区。一旦您在套接字上写入/发送数据,它就会被复制到该缓冲区中,并立即可供对等方使用。
【讨论】:
write,然后立即在另一端调用read,它承诺返回数据。我还没有阅读所有常见 unix 的文档,但我已经根据这个假设编写了代码,并且它在 Solaris、Darwin、AIX、FreeBSD、HP-UX 上也可以正常运行,因此依赖它似乎是安全的。如果我错了,请纠正我!