2012-09-29 51 views
1

我有下面的代码作为一个Erlang网络服务器的一部分许多长寿命的并发连接。Erlang gen_tcp延迟发送

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_sendnodelay选项,它似乎是缓存数据,使数据的小块不发送,直到一个更大的数据的大块发送或服务器的杀害。这是为什么,我如何强制它立即发送所有数据?

+0

为什么你说:“看起来”?你如何测试这个? – user601836

回答

0

原来,这是在iPad客户端缓冲数据的NSURLConnection,而不是立即传递它。

我切换到CFNetwork,很有趣。