I use r.Run to open server , but I found it's will not open server!

this is my code:

main.go ` func main() { interfaceAddr, err := net.InterfaceAddrs() //fmt.Println(interfaceAddr) if err != nil { fmt.Println(err) return } // && ipNet.IP.IsLoopback() ips := []string{} for _, address := range interfaceAddr { ipNet, isVailIpNet := address.(*net.IPNet) if isVailIpNet && ipNet.IP.IsLoopback() { if ipNet.IP.To4() != nil { ips = append(ips, ipNet.IP.String()) } } }

router := api.InitRouter()
for _, ip := range ips {
    fmt.Println(ip)
    go router.Run(ip + ":9220")
}
// r := api.InitRouter()
// r.Run(":9220")
fmt.Println("ok")
select {}

} `

route.go ` func InitRouter() *gin.Engine { r := gin.Default() r.Use(verify) apiGroup := r.Group("orion/machine-monitor-agent/api") EndpointRegister(apiGroup) MetricsRegister(apiGroup) StatisticRegister(apiGroup) return r }

func verify(c *gin.Context) { fmt.Println("get request") token := c.GetHeader("accessToken") if token != "agent_access" { c.JSON(http.StatusNotAcceptable, gin.H{ "code": http.StatusNotAcceptable, "message": "token error", }) c.Abort() return } } `

when I run this code, got output: ... [GIN-debug] POST /orion/machine-monitor-agent/api/monitor-statistic/net --> geovis/api.postNetInfo (4 handlers) 127.0.0.1 ok

But, when I test it, go this :

connect ECONNREFUSED 127.0.0.1:9220

I run netstat -ano | findstr 9220 in shell, but cant get anything

so what's wrong ?

Environment

  • go version: 1.20.1
  • gin version (or commit ref): 1.9.1
  • operating system: windows

Comment From: saurabhchatterjee23

package main

import (
    "fmt"
    "net"
    "net/http"

    "github.com/gin-gonic/gin"
    "github.com/go-delve/delve/service/api"
)

func main() {
    interfaceAddr, err := net.InterfaceAddrs()
    //fmt.Println(interfaceAddr)
    if err != nil {
        fmt.Println(err)
        return
    }
    // && ipNet.IP.IsLoopback()
    ips := []string{}
    for _, address := range interfaceAddr {
        ipNet, isVailIpNet := address.(*net.IPNet)
        if isVailIpNet && ipNet.IP.IsLoopback() {
            if ipNet.IP.To4() != nil {
                ips = append(ips, ipNet.IP.String())
            }
        }
    }

    router := api.InitRouter()
    for _, ip := range ips {
        fmt.Println(ip)
        go router.Run(ip + ":9220")
    }
    // r := api.InitRouter()
    // r.Run(":9220")
    fmt.Println("ok")
    select {}
}

func InitRouter() *gin.Engine {
    r := gin.Default()
    r.Use(verify)
    apiGroup := r.Group("orion/machine-monitor-agent/api")
    EndpointRegister(apiGroup)
    MetricsRegister(apiGroup)
    StatisticRegister(apiGroup)
    return r
}

func verify(c *gin.Context) {
    fmt.Println("get request")
    token := c.GetHeader("accessToken")
    if token != "agent_access" {
        c.JSON(http.StatusNotAcceptable, gin.H{
            "code":    http.StatusNotAcceptable,
            "message": "token error",
        })
        c.Abort()
        return
    }
}

Comment From: sowhyim

it's ok for me you should check your PC permissions? or as you say, you got nothing when you run netstat then you should check your code was running?