如何在 Go 中停止监听服务器?
要停止 Go 中的服务器监听,可以使用net.Listener
的Close
方法。这个方法会立即停止服务器监听,并释放与该监听器关联的所有资源。
以下是一个示例代码片段,说明如何停止 Go 中的服务器监听:
import ( "net" "log" ) func main() { // 创建监听器 l, err := net.Listen("tcp", ":8080") if err != nil { log.Fatal(err) } // 在 goroutine 中监听请求 go func() { for { _, err := l.Accept() if err != nil { log.Println(err) return } } }() // 程序执行到这里时,服务器开始监听 log.Println("Server is listening...") // 停止服务器监听 err = l.Close() if err != nil { log.Fatal(err) } log.Println("Server stopped listening.") }
在上面的代码中,我们首先创建一个监听器并在 goroutine 中监听请求。当我们想要停止服务器监听时,调用l.Close()
方法即可。此时,Accept()
方法会返回一个net.ErrClosed
错误,表示监听器已关闭。