Last active
May 27, 2022 14:51
-
-
Save madflojo/63bb7d3a2911129318889e6aa6b9d80b to your computer and use it in GitHub Desktop.
TCP KeepAlives Server Example
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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