【发布时间】:2013-05-17 22:37:16
【问题描述】:
我有以下代码:
server := &http.Server{Addr: addr, Handler: r}
l, err := net.Listen("tcp", addr)
if err != nil {
logging.Error("Failed opening socket: %s", err)
}
if err := server.Serve(l); err != nil {
// error handling
}
当调用l.Close() 时,server.Serve(l) 将退出并出现错误。我想知道这是否真的是一个错误,或者只是某人调用l.Close() 的结果(这对我来说不是错误)。
有没有合适的方法来做到这一点?
【问题讨论】:
-
检查错误?不过,我不确定您是否可以依靠
close()与网卡故障区分开来,而且我无法想到Serve()失败的任何其他原因。 -
这个问题和你想知道的有关how do you stop a listening server
-
谢谢@NickCraig-Wood!
标签: networking go