Golang 检测端口是否被占用:完整示例代码
Golang 检测端口是否被占用:完整示例代码
在 Golang 中,可以使用 net 包来判断端口号是否被占用。以下是一个示例代码:gopackage main
import ( 'fmt' 'net')
func main() { port := 8080
// 尝试监听指定端口 listener, err := net.Listen('tcp', fmt.Sprintf(':%d', port)) if err != nil { // 端口被占用 fmt.Printf('端口 %d 已被占用
', port) return } defer listener.Close()
// 端口未被占用 fmt.Printf('端口 %d 未被占用
', port)}
代码说明:
- 导入
net包: 首先,我们需要导入net包,它提供了网络编程所需的功能。2. 指定端口号: 将需要检测的端口号赋值给变量port。3. 尝试监听端口: 使用net.Listen('tcp', fmt.Sprintf(':%d', port))尝试监听指定的端口。 * 如果监听成功,listener将会是一个有效的监听器对象,err将为nil。 * 如果监听失败,err将包含错误信息,通常是因为端口已被占用。4. 判断端口占用情况: 根据err是否为nil来判断端口是否被占用。 * 如果err不为nil,则说明端口已被占用,打印相应的提示信息。 * 如果err为nil,则说明端口未被占用,打印相应的提示信息。5. 关闭监听器: 最后,使用defer listener.Close()语句在函数返回前关闭监听器,释放资源。
总结:
通过上述代码,我们可以方便地使用 Golang 检测端口是否被占用。这在网络编程中非常有用,例如检查服务是否正常运行,避免端口冲突等。
原文地址: https://www.cveoy.top/t/topic/fBhg 著作权归作者所有。请勿转载和采集!