我需要在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

    }

    ...

}

换句话说,我希望能够以某种方式优雅地终止程序。