Skip to content

Instantly share code, notes, and snippets.

@madflojo
Last active May 27, 2022 14:51
Show Gist options
  • Save madflojo/63bb7d3a2911129318889e6aa6b9d80b to your computer and use it in GitHub Desktop.
Save madflojo/63bb7d3a2911129318889e6aa6b9d80b to your computer and use it in GitHub Desktop.
TCP KeepAlives Server Example
// Resolve TCP Address
addr, err := net.ResolveTCPAddr("tcp", "127.0.0.1:9000")
if err != nil {
fmt.Printf("Unable to resolve IP")
}
// Start TCP Listener
l, err := net.ListenTCP("tcp", addr)
if err != nil {
fmt.Printf("Unable to start listener - %s", err)
}
// Wait for new connections and send them to reader()
for {
c, err := l.AcceptTCP()
if err != nil {
fmt.Printf("Listener returned - %s", err)
break
}
// Enable Keepalives
err = c.SetKeepAlive(true)
if err != nil {
fmt.Printf("Unable to set keepalive - %s", err)
}
go reader(c)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment