websocket 无法建立连接,因为目标计算机主动拒绝了它

vc9ivgsu  于 2022-11-11  发布在  其他
关注(0)|答案(1)|浏览(408)

我的服务器:

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.

为什么?我的防火墙关闭了。

62lalag4

62lalag41#

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")

相关问题