你能检测到 HTTP 服务器何时开始监听吗?
当使用 net/http 服务器接口时,检测何时开始侦听可能会很困难HTTP 服务器启动监听。 ListenAndServe 函数不提供服务器就绪通知机制。
替代解决方案
您可以手动处理,而不是依赖内置通知功能通过将代码直接写入您的应用程序来完成此过程。这允许您在侦听套接字变得可用时发出信号:
l, err := net.Listen("tcp", ":8080") if err != nil { // Handle error } // Signal that the server is open for business, such as printing a message or setting a variable if err := http.Serve(l, rootHandler); err != nil { // Handle error }
通过手动发出套接字的打开状态信号,您可以检测服务器的准备情况,而无需依赖睡眠机制,因为睡眠机制存在计时不准确的风险。此外,如果信令步骤不阻塞,HTTP.Serve 可以无缝处理侦听套接字上的任何积压。
以上是如何检测 Go net/http 服务器何时开始监听?的详细内容。更多信息请关注PHP中文网其他相关文章!