2

我有两个 erlang 节点在两台不同的计算机上运行,​​在一个节点中我有一个 ssl 客户端,在另一个节点中我有 ssl 服务器。两台电脑都通过wifi连接上网。

一切正常,但我想知道为什么如果我关闭客户端笔记本电脑中的 wifi,我不会收到 {ssl_closed, Socket} 消息。

套接字选项有:

{active, true}, {keepalive, true}

我的意思是,套接字应该不再有效..对吗?

4

1 回答 1

3

全局 TCP 保活超时值通常设置为保活消息之间的 7200 秒之类的值。如果您使用的是 Linux 系统,则可以使用sysctl -a | grep keepalive.

真的不建议摆弄这个值,因为它是一个全局配置。相反,您应该ping向应用程序级协议添加一条消息(让客户端不时发送 ping),服务器可以简单地丢弃它。

似乎可以通过该inet:setopts/2函数和使用该raw选项设置每个套接字的保活超时,但我不知道是否建议这样做(它不能在平台之间移植)

于 2012-08-24T14:37:36.203 回答