我有服务器:

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
            }
        }()
    }
}

和try 连接到我的计算机的客户端:

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客户端,并把它发给了我的朋友.在Friend机器上,他启动它,并收到错误:

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上侦听,客户端正在try 通过IP连接.

try 连接localhost上的客户端

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

或者收听0.0.0.0上的服务器

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

Go相关问答推荐

如何获得与cksum相同的CRC 32?

如何将泛型函数作为参数传递给golang中的另一个函数?

在Golang中,@LATEST和@UPGRADE特殊查询有什么不同?

GitHub发布Golang子模块

在 GoLang 中对自定义 struct 体数组进行排序

使用Dockertest进行Golang SQL单元测试的基本设置

杜松子wine 和中间件

从给定顶点查找图形中所有闭合路径的算法

如何将整数哈希细分为范围

如何过滤来自 fsnotify 的重复系统消息

当函数返回一个函数时,为什么 Go 泛型会失败?

如何为导入的嵌入式 struct 文字提供值?

如何仅提取时间作为持续时间

如何在测试中使用自定义标志(使用`testify/suite`)

go 堆栈跟踪:在某些函数调用参数或返回值之后的问题(?)标记是什么意思?

如何使用带有Electron 表格 ID、Electron 表格名称、表格 ID 和值的 golang 在 googlesheet 中插入数据

Golang API 的 HTTPS

如何在 Unmarshal 中使用泛型(转到 1.18)

不能使用 *T 类型的变量作为参数类型

Golang 查询扫描未将查询正确扫描到 struct 中