net.Conn — интерфейс, представляющий сетевое соединение. Он реализует io.Reader и io.Writer, так что можно читать и писать байты как в обычный поток. Есть методы SetDeadline, SetReadDeadline, SetWriteDeadline для таймаутов — без них горутина может зависнуть навечно на медленном клиенте. LocalAddr() и RemoteAddr() возвращают адреса. Close() закрывает соединение. Любой TCP, UDP или Unix socket соединение в Go — это net.Conn, поэтому код можно писать абстрактно от протокола.