私は、多くの長寿命の同時接続用のErlangWebサーバーの一部として以下のコードを持っています。
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
、データをバッファリングしているようです。そのため、データの大きなチャンクが送信されるか、サーバーが強制終了されるまで、小さなデータは送信されません。これはなぜですか。また、すべてのデータをすぐに送信するように強制するにはどうすればよいですか。