golang tcp keepalive实践
前文 中已经介绍了TCP keep alive的做了详尽说明,本文结合golang,介绍如何使用TCP keep alive。 目前golang net包不提供TCP keep alive 空闲多长时间开始探测 、 探测总次数 直接设置。 可以使用第三方包。 1.下载第三方包 git clone git@github.com:felixge/tcpkeepalive.git 注意放到 GOPATH 目录下。 2.例子 2.1 server server端,接受client连接请求,建立连接后,设置连接的 空闲多长时间开始探测 、 探测时间间隔 、 探测总次数 。 本例中,我们设置的参数如下: 空闲多长时间开始探测 keepAliveIdle : 10s 探测时间间隔 keepAliveInterval : 10s 探测总次数 keepAliveCount :9 server端发送一次数据后,停住。等待10s,开始发送tcp keep alive. server 代码如下: package main import ( "net" "log" "time" "github.com/tcpkeepalive" ) func main() { addr := "0.0.0.0:8080" tcpAddr, err := net.ResolveTCPAddr("tcp",addr) if