登录
首页 >  Golang >  Go问答

无法建立连接,因为目标机器主动拒绝 Golang

来源:stackoverflow

时间:2024-04-12 11:09:35 314浏览 收藏

积累知识,胜过积蓄金银!毕竟在Golang开发的过程中,会遇到各种各样的问题,往往都是一些细节知识点还没有掌握好而导致的,因此基础知识点的积累是很重要的。下面本文《无法建立连接,因为目标机器主动拒绝 Golang》,就带大家讲解一下知识点,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

问题内容

我有服务器:

func main() {
    ln, err := net.listen("tcp", "localhost:12345")
    if err != nil {
        log.fatal(err)
    }

    for {
        conn, err := ln.accept()
        if err != nil {
            fmt.println("error during accept")
            fmt.println(err)
            return
        }

        _, err = ws.upgrade(conn)
        if err != nil {
            fmt.println("error during upgrade")
            fmt.println(err)
            return
        }

        go func() {
           some code
            }
        }()
    }
}

和客户端,它尝试连接到我的计算机:

func main() {
    buf := new(bytes.buffer)
    payload := []byte("hello world!")

    err := binary.write(buf, binary.littleendian, payload)
    if err != nil {
        fmt.println("error during writing into binary")
        fmt.println(err)
        return
    }

    conn, err := net.dial("tcp", "37.57.79.119:12345")
    if err != nil {
        fmt.println("error during dialing")
        fmt.println(err)
        return
    }
    buf.writeto(conn)
    defer conn.close()

    answer, _ := io.readall(conn)
    fmt.println(string(answer))
}

我的系统是kubuntu 20.04,我编译了windows客户端,并发送给我的朋友。在朋友的机器上,他启动它,并收到错误:

Error during Dialing
dial tcp 37.57.79.119:12345: connectex: No connection could be made because the target machine actively refused it.
为什么?我的防火墙已关闭。

正确答案


net.listen("tcp", "localhost:12345") 正在监听 localhost 并且客户端正在尝试通过 ip 连接。

尝试在 localhost 上连接客户端

net.dial("tcp", "localhost:12345")

或者在0.0.0.0上监听服务器

net.Listen("tcp", "0.0.0.0:12345")

本篇关于《无法建立连接,因为目标机器主动拒绝 Golang》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>