代码拉取完成,页面将自动刷新
//go:build linux
// +build linux
package xnet
import (
"net"
"os"
"syscall"
)
// SetKeepAliveIdle sets the time (in seconds) the connection needs to remain
// idle before TCP starts sending keepalive probes.
func setAliveIdle(tcp *net.TCPConn, secs int) error {
file, err := tcp.File()
if err != nil {
return err
}
fd := int(file.Fd())
return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd, syscall.IPPROTO_TCP, syscall.TCP_KEEPIDLE, secs))
}
// SetKeepAliveCount sets the maximum number of keepalive probes TCP should
// send before dropping the connection.
func setAliveCount(tcp *net.TCPConn, n int) error {
file, err := tcp.File()
if err != nil {
return err
}
fd := int(file.Fd())
return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd, syscall.IPPROTO_TCP, syscall.TCP_KEEPCNT, n))
}
// SetKeepAliveInterval sets the time (in seconds) between individual keepalive
// probes.
func setAliveInterval(tcp *net.TCPConn, secs int) error {
file, err := tcp.File()
if err != nil {
return err
}
fd := int(file.Fd())
return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd, syscall.IPPROTO_TCP, syscall.TCP_KEEPINTVL, secs))
}
func setNonblock(fd int) error {
return os.NewSyscallError("setsockopt", syscall.SetNonblock(fd, true))
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。