TCP: net.Listen("tcp", ":8080"), Accept(), Read/Write или bufio. UDP: net.ListenPacket("udp", ":8080"), ReadFrom/WriteTo. Для HTTP используется TCP под капотом. TCP надежный, с установкой соединения; UDP без установки, без гарантий доставки. В Go типично net.Conn для TCP, net.PacketConn для UDP (DNS, игровые протоколы).
ln, _ := net.Listen("tcp", ":8080")
conn, _ := ln.Accept()
defer conn.Close()
conn.Write([]byte("data"))