一、代码
func CheckPort(proto string, port int) bool {
if proto != "tcp" && proto != "udp" {
return true
}
if proto == "tcp" {
_, err := net.Dial(proto, fmt.Sprintf(":%d", port))
if err != nil {
return false
}
} else {
udpAddress, err := net.ResolveUDPAddr("udp", fmt.Sprintf(":%d", port))
if err != nil {
return true
}
listener, err := net.ListenUDP("udp", udpAddress)
if err == nil {
listener.Close()
return false
}
}
return true
}