我相信标题是非常自我解释的,但为了以防万一,我会进一步解释。
我在Go中编写一个函数,它使用icmp来检查特定服务是否正在运行。我从Go中实现了ping这个想法。当我尝试命令行ping时,它无法解析127.0.0.1:8080
,并且该函数也是如此,这是有道理的。但是,我可以使用icmp检查该地址和端口我丢失的东西吗?或者我应该像tcp这样的东西来定位一个端口?
现在我有这个简单的功能,我可以只使用tcp,但我很好奇我是否可以使用像icmp这样的东西。
func (c *Controller) Ping() error {
conn, connErr := net.Dial("ip4:icmp", c.APIServerIP)
if connErr != nil {
return connErr
}
conn.SetDeadline(time.Now().Add(3 * time.Second))
defer conn.Close()
return nil
}
答案 0 :(得分:4)
没有。 ICMP中没有端口。
如果您想知道特定的TCP服务器是否正在运行,请尝试连接到它。