【发布时间】:2012-09-21 08:22:25
【问题描述】:
我将以下代码作为 Erlang Web 服务器的一部分用于许多长期并发连接。
SockOpts = [
binary,
{active, false},
{packet, http_bin},
{reuseaddr, true},
{packet_size, 16384},
{recbuf, 16384},
{backlog, 100},
{delay_send, false},
{nodelay, true}
],
gen_tcp:listen(Port, SockOpts)
尽管我添加了delay_send 和nodelay 选项,但它似乎正在缓冲数据,因此在发送更大的数据块或服务器被终止之前不会发送小块数据。为什么会这样,如何强制它立即发送所有数据?
【问题讨论】:
-
你为什么说:“看起来”?你如何测试这个?