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?