keepalive作用
keepalive并不是为了让tcp保持长连接,而只是一种让操作系统可以自动检测连接意外断开的机制,一个连接保持长连接是因为建立之后没有断开,而不是因为设置了keepalive。
This commit is contained in:
@@ -302,8 +302,7 @@ TCP有很多连接控制函数,我们平常用到比较多的有如下几个
|
||||
用来设置写入/读取一个连接的超时时间。当超过设置时间时,连接自动关闭。
|
||||
|
||||
func (c *TCPConn) SetKeepAlive(keepalive bool) os.Error
|
||||
|
||||
设置客户端是否和服务器端保持长连接,可以降低建立TCP连接时的握手开销,对于一些需要频繁交换数据的应用场景比较适用。
|
||||
设置keepAlive属性,是操作系统层在tcp上没有数据和ACK的时候,会间隔性的发送keepalive包,操作系统可以通过该包来判断一个tcp连接是否已经断开,在windows上默认2个小时没有收到数据和keepalive包的时候人为tcp连接已经断开,这个功能和我们通常在应用层加的心跳包的功能类似。
|
||||
|
||||
更多的内容请查看`net`包的文档。
|
||||
## UDP Socket
|
||||
|
||||
Reference in New Issue
Block a user