我需要在Golang中实现一个服务器。我正在将软件包用于此目的,但我不了解如何优雅地脱离循环。netaccept
因此,请看一下包中的示例:net
ln, err := net.Listen("tcp", ":8080")
if err != nil {
// handle error
}
for {
conn, err := ln.Accept()
if err != nil {
// handle error
}
go handleConnection(conn)
}
我想做更多的事情,
for {
select {
case <-done:
break
case conn, err := <-ln.Accept():
if err != nil {
break
}
...
}
换句话说,我希望能够以某种方式优雅地终止程序。