[erlang-questions] Socket keepalive option
Per Hedeland
per@REDACTED
Sat Jun 14 12:17:15 CEST 2008
"Greg Burri" <greg.burri@REDACTED> wrote:
>
>Is it possible to set the option {keepalive, Boolean} to a socket by
>the server side after the socket has been created ?
I certainly think it should be, but haven't actually verified it.
>I try to do that with an application under Yaws (http://yaws.hyber.org/) :
>
>out(A) ->
> inet:setopts(A#arg.clisock, [{active, true}, {keepalive, true}]),
> [..]
>
>When the server waits and it doesn't send data I capture the TCP
>stream with Wireshark (http://www.wireshark.org/) and see if there is
>some 'Ack' from the server... but I don't see anything..
Depending on your OS, the timeout for starting keepalive probing is on
the order of a couple of hours, so you need to be patient.:-) E.g.
FreeBSD 7.0:
$ sysctl -a | grep tcp.keep
net.inet.tcp.keepidle: 7200000
net.inet.tcp.keepintvl: 75000
net.inet.tcp.keepinit: 75000
tcp(4):
keepinit Timeout, in milliseconds, for new, non-established TCP
connections.
keepidle Amount of time, in milliseconds, that the connection
must be idle before keepalive probes (if enabled) are
sent.
keepintvl The interval, in milliseconds, between keepalive
probes sent to remote machines. After TCPTV_KEEPCNT
(default 8) probes are sent, with no response, the
connection is dropped.
--Per Hedeland
More information about the erlang-questions
mailing list