diff --git a/server/service.go b/server/service.go index 027aaf01..dc05b896 100644 --- a/server/service.go +++ b/server/service.go @@ -27,6 +27,7 @@ import ( "math/big" "net" "net/http" + "reflect" "strings" "time" @@ -316,7 +317,14 @@ func (svr *Service) Run() { // Stop 停止服务 func (svr *Service) Stop() error { - err := svr.muxer.Close() + var err error + value := reflect.ValueOf(svr.muxer) + lnValue := value.Elem().FieldByName("ln") + ln, ok := lnValue.Interface().(net.Listener) + if ok && ln != nil { + err = ln.Close() + } + if svr.listener != nil { _ = svr.listener.Close() }