在Mac上运行ip4服务器

I'm using some code from Jan Newmarch's book on Go to run a daytime server on my mac. It uses this code

func main() {

        service := ":1200"
        tcpAddr, err := net.ResolveTCPAddr("ip4", service)
        checkError(err)

        listener, err := net.ListenTCP("tcp", tcpAddr)
        checkError(err)

however, when I run it (on a Mac), I get this error

Fatal error: unknown network ip4

Is there anything other than ip4 that I can include in this code to avoid that error?

tcpAddr, err := net.ResolveTCPAddr("ip4", service)

Note, I also tried ip6 and got the same error.

According to the documentation for ResolveTCPAddr the only valid values for the net arg are "tcp", "tcp4" and "tcp6"

I suspect you're getting mixed up between ResolveTCPAddr and ResolveIPAddr

"ip4" isn't a valid network for ResolveTCPAddr (source).

Use ResolveIPAddr for resolving a general IP address.

"ip4" is not a valid string

See the Documentation for ResolveTCPAddr

ResolveTCPAddr parses addr as a TCP address of the form "host:port" or "[ipv6-host%zone]:port" and resolves a pair of domain name and port name on the network net, which must be "tcp", "tcp4" or "tcp6". A literal address or host name for IPv6 must be enclosed in square brackets, as in "[::1]:80", "[ipv6-host]:http" or "[ipv6-host%zone]:80".

And the code:

func ResolveTCPAddr(net, addr string) (*TCPAddr, error) {
        switch net {
        case "tcp", "tcp4", "tcp6":
        case "": // a hint wildcard for Go 1.0 undocumented behavior
            net = "tcp"
        default:
            return nil, UnknownNetworkError(net)
        }
        a, err := resolveInternetAddr(net, addr, noDeadline)
        if err != nil {
            return nil, err
        }
        return a.toAddr().(*TCPAddr), nil
    }