本文整理匯總了Golang中net/http.Server.ReadTimeout方法的典型用法代碼示例。如果您正苦於以下問題:Golang Server.ReadTimeout方法的具體用法?Golang Server.ReadTimeout怎麽用?Golang Server.ReadTimeout使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類net/http.Server
的用法示例。
在下文中一共展示了Server.ReadTimeout方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: serveSmart
func (c *conn) serveSmart() {
defer func() {
if err := recover(); err != nil {
const size = 4096
buf := make([]byte, size)
buf = buf[:runtime.Stack(buf, false)]
log.Printf("http: panic serving %v: %v\n%s", c.remoteAddr, err, buf)
}
if !c.hijacked() {
c.close()
}
}()
if tlsConn, ok := c.rwc.(*tls.Conn); ok {
if d := c.server.ReadTimeout; d != 0 {
c.rwc.SetReadDeadline(time.Now().Add(d))
}
if d := c.server.WriteTimeout; d != 0 {
c.rwc.SetWriteDeadline(time.Now().Add(d))
}
if err := tlsConn.Handshake(); err != nil {
return
}
c.tlsState = new(tls.ConnectionState)
*c.tlsState = tlsConn.ConnectionState()
if proto := c.tlsState.NegotiatedProtocol; validNPN(proto) {
if fn := c.server.TLSNextProto[proto]; fn != nil {
h := initNPNRequest{tlsConn, serverHandler{c.server}}
fn(c.server, tlsConn, h)
}
return
}
}
initial_bytes := make([]byte, start_bytes)
// add smart detection
n, err := c.rwc.Read(initial_bytes)
if err != nil || n != start_bytes {
return
}
if checkspdy(initial_bytes) {
s := c.server
z := new(http.Server)
z.Addr = s.Addr
z.Handler = s.inner_h
z.ReadTimeout = s.ReadTimeout
z.WriteTimeout = s.WriteTimeout
z.MaxHeaderBytes = s.MaxHeaderBytes
server_session := spdy.NewServerSession(NewSmartConn(c.rwc, initial_bytes), z)
server_session.Serve()
return
}
c2, err := c.server.newConn(NewSmartConn(c.rwc, initial_bytes))
if err != nil {
return
}
c2.serve()
}
示例2: NewServer
/*
NewServer returns an intialized endlessServer Object. Calling Serve on it will
actually "start" the server.
*/
func NewServer(addr string, handler http.Handler) *endlessServer {
var srv http.Server
srv.Addr = addr
srv.ReadTimeout = DefaultReadTimeOut
srv.WriteTimeout = DefaultWriteTimeOut
srv.MaxHeaderBytes = DefaultMaxHeaderBytes
srv.Handler = handler
return New(srv)
}
示例3: nextproto3
func nextproto3(s *Server, c *tls.Conn, h Handler) {
z := new(http.Server)
z.Addr = s.Addr
z.Handler = s.inner_h
z.ReadTimeout = s.ReadTimeout
z.WriteTimeout = s.WriteTimeout
z.MaxHeaderBytes = s.MaxHeaderBytes
if z.Handler == nil {
z.Handler = http.DefaultServeMux
}
server_session := spdy.NewServerSession(c, z)
server_session.Serve()
}