How to implement a TCP server in Go?