1

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

4

1 に答える 1

0

iPadクライアントのNSURLConnectionがデータをバッファリングしていて、すぐに渡さなかったことが判明しました。

CFNetworkに切り替えました。楽しいです。

于 2012-10-08T09:46:23.853 に答える