①路由注册
膳绫擎的流程就完成了路由注册。
②办事监听
type Server struct { Addr string Handler Handler ReadTimeout time.Duration WriteTimeout time.Duration TLSConfig *tls.Config MaxHeaderBytes int TLSNextProto map[string]func(*Server, *tls.Conn, Handler) ConnState func(net.Conn, ConnState) ErrorLog *log.Logger disableKeepAlives int32 nextProtoOnce sync.Once nextProtoErr error }func ListenAndServe(addr string, handler Handler) error { server := &Server{Addr: addr, Handler: handler} return server.ListenAndServe()}//初始化监听地址Addr,同时调用Listen办法设置监听。//最后将监听的TCP对象传入Serve办法:func (srv *Server) ListenAndServe() error { addr := srv.Addr if addr == "" { addr = ":http" } ln, err := net.Listen("tcp", addr) if err != nil { return err } return srv.Serve(tcpKeepAliveListener{ln.(*net.TCPListener)}) }Serve(l net.Listener)为每个请求开启goroutine的设计,包管了go的高并发。
func (srv *Server) Serve(l net.Listener) error { defer l.Close() if
推荐阅读
在这个系列的第一部分,我们具体地评论辩论了 cd - 敕令,在第二部分,我们深刻商量了 pushd 和 popd 两个敕令,以及它们应用的场景。持续对敕令行的评论辩论,在这篇教程中,我们将会经由>>>详细阅读
本文标题:Go语言HTTP Server源码分析
地址:http://www.17bianji.com/lsqh/34685.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示