首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Mac上运行ip4服务器

问在Mac上运行ip4服务器
EN

Stack Overflow用户
提问于 2014-07-09 17:21:30
回答 3查看 570关注 0票数 1

我正在使用Jan Newmarch的预定开始中的一些代码在我的mac上运行一个日间服务器。它使用以下代码

代码语言:javascript
复制
func main() {

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

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

然而,当我在Mac上运行它时,我会得到这个错误。

代码语言:javascript
复制
Fatal error: unknown network ip4

在这段代码中,除了ip4之外,还有什么可以避免错误的吗?

代码语言:javascript
复制
tcpAddr, err := net.ResolveTCPAddr("ip4", service)

注意,我也尝试了ip6并得到了相同的错误。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-07-09 17:28:39

根据文档 for ResolveTCPAddr,net arg的唯一有效值是"tcp“、"tcp4”和"tcp6“。

我怀疑你被ResolveTCPAddr和ResolveIPAddr搞混了

票数 4
EN

Stack Overflow用户

发布于 2014-07-09 17:29:01

"ip4“不是ResolveTCPAddr (来源)的有效网络。

使用ResolveIPAddr解析一般IP地址。

票数 1
EN

Stack Overflow用户

发布于 2014-07-09 17:31:04

"ip4“不是有效的字符串。

请参阅ResolveTCPAddr的文档

ResolveTCPAddr将addr解析为“主机:端口”或“ipv6 6-主机%区域:端口”的TCP地址,并解析网络网络上的一对域名和端口名,必须是"tcp“、"tcp4”或"tcp6"。IPv6的文字地址或主机名必须括在方括号中,如"::1:80“、”ipv6 6-主机:http“或”ipv6 6-主机%区域:80“。

守则如下:

代码语言:javascript
复制
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
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24660046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档