go - 监听 TCP4 而不是 TCP6

标签 go ipv4 go-gin goji

我正在使用 https://github.com/gin-gonic/gin写一个http服务 但是当我部署它时,它一直在 tcp6 上部署(根据 netstat)

r := gin.Default()
//none of these are working , It keeps being listed on tcp6
r.Run(":8080")
r.Run("*:8080")
r.Run("0.0.0.0:8080")

最佳答案

文档说明

Run attaches the router to a http.Server and starts listening and serving HTTP requests. It is a shortcut for http.ListenAndServe(addr, router)

您可以使用http.Server 直接启动服务器,就像http 包在ListenAndServe

中所做的一样
server := &http.Server{Handler: r}
l, err := net.Listen("tcp4", addr)
if err != nil {
    log.Fatal(err)
}
err = server.Serve(l)
// ...

关于go - 监听 TCP4 而不是 TCP6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38592064/

相关文章:

c - 如何使用 GO 导入用 C 编写的 DLL 函数?

php - 是否可以将 getaddrinfo() 设置为默认仅检索 IPV4 地址?

go - 单元测试不覆盖本地导入包

json - 使用 PUT 在一个请求中更新多个 JSON 数据

json - Golang slice 的结构或新手在构建 REST 时遇到麻烦

go - 仅通过 golang 中的第一个元素拆分字符串

process - 如何在 Golang 中创建守护进程?

sockets - 为什么在并发连接到服务器时接受两个相同的 5 元组套接字?

php - 如何使用 PHP 代码同时获取 IPv4 和 IPv6 地址?

c# - 从 Dns.GetHostEntry() 获取 IPv4 地址