本文整理汇总了Golang中net/http.Server类的典型用法代码示例。如果您正苦于以下问题:Golang Server类的具体用法?Golang Server怎么用?Golang Server使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Server类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: serveWebsite
// Serve the website. This function blocks.
func serveWebsite() {
port := 8080
// Sanity check to make sure we're in the right directory.
_, err := os.Stat("static/font.png")
if err != nil {
log.Fatal("You must be in the trs80 source directory (github.com/lkesteloot/trs80)")
}
// Create handlers.
handlers := http.NewServeMux()
handlers.Handle("/", webutil.GetHandler(http.HandlerFunc(homeHandler)))
handlers.Handle("/ws", websocket.Handler(wsHandler))
handlers.Handle("/static/", http.StripPrefix("/static/",
http.FileServer(http.Dir("static"))))
// Create server.
address := fmt.Sprintf(":%d", port)
server := http.Server{
Addr: address,
Handler: webutil.LoggingHandler(handlers),
ReadTimeout: 10 * time.Second,
WriteTimeout: 10 * time.Second,
MaxHeaderBytes: http.DefaultMaxHeaderBytes,
}
// Start serving.
log.Printf("Serving website on %s", address)
err = server.ListenAndServe()
if err != nil {
log.Fatal(err)
}
}
示例2: TestGoRPCBinlogStreamer
// the test here creates a fake server implementation, a fake client
// implementation, and runs the test suite against the setup.
func TestGoRPCBinlogStreamer(t *testing.T) {
// Listen on a random port
listener, err := net.Listen("tcp", ":0")
if err != nil {
t.Fatalf("Cannot listen: %v", err)
}
// Create a Go Rpc server and listen on the port
server := rpcplus.NewServer()
fakeUpdateStream := binlogplayertest.NewFakeBinlogStreamer(t)
server.Register(gorpcbinlogstreamer.New(fakeUpdateStream))
// create the HTTP server, serve the server from it
handler := http.NewServeMux()
bsonrpc.ServeCustomRPC(handler, server, false)
httpServer := http.Server{
Handler: handler,
}
go httpServer.Serve(listener)
// Create a Go Rpc client to talk to the fake tablet
client := &GoRpcBinlogPlayerClient{}
// and send it to the test suite
binlogplayertest.Run(t, client, listener.Addr().String(), fakeUpdateStream)
}
示例3: NewHttpService
func NewHttpService(context interface {
Acquire()
Release()
}, server *http.Server) (s *HttpService, err error) {
s = &HttpService{}
addr := server.Addr
if addr == "" {
addr = ":http"
}
s.listener, err = net.Listen("tcp", addr)
if err != nil {
return
}
var w sync.WaitGroup
w.Add(1)
context.Acquire()
go func() {
defer context.Release()
l := s.listener
w.Done()
server.Serve(l)
}()
return
}
示例4: HandleRoot
func HandleRoot(w http.ResponseWriter, r *http.Request) {
originalListener, err := net.Listen("tcp", ":8090")
if err != nil {
panic(err)
}
sl, err := customListener.New(originalListener)
if err != nil {
panic(err)
}
http.HandleFunc("/", helloHttp)
server := http.Server{}
stop := make(chan os.Signal)
signal.Notify(stop, syscall.SIGINT)
var wg sync.WaitGroup
go func() {
wg.Add(1)
defer wg.Done()
server.Serve(sl)
}()
fmt.Printf("Serving HTTP\n")
select {
case signal := <-stop:
fmt.Printf("Got signal:%v\n", signal)
}
fmt.Printf("Stopping listener\n")
sl.Stop()
fmt.Printf("Waiting on server\n")
wg.Wait()
}
示例5: ServeFd
// ServeFD creates an http.Server and sets it up to serve given a socket activated
// argument.
func ServeFd(addr string, handle http.Handler) error {
ls, e := systemd.ListenFD(addr)
if e != nil {
return e
}
chErrors := make(chan error, len(ls))
// We don't want to start serving on these sockets until the
// "initserver" job has completed. Otherwise required handlers
// won't be ready.
<-activationLock
// Since ListenFD will return one or more sockets we have
// to create a go func to spawn off multiple serves
for i := range ls {
listener := ls[i]
go func() {
httpSrv := http.Server{Handler: handle}
chErrors <- httpSrv.Serve(listener)
}()
}
for i := 0; i < len(ls); i += 1 {
err := <-chErrors
if err != nil {
return err
}
}
return nil
}
示例6: main
func main() {
server := http.Server{
Addr: "127.0.0.1:8080",
}
http.HandleFunc("/process", process)
server.ListenAndServe()
}
示例7: NewHTTP
// NewHTTP returns a ListenProxy with a http as the listening service. This is
// a convenience wrapper kept in place for compatibility with older checkouts.
// Might be removed in the future.
func NewHTTP(handler http.Handler) *ListenProxy {
lp := NewListenProxy(checker, 10)
httpServer := http.Server{Addr: ":http", Handler: handler}
go httpServer.Serve(lp.Listener())
return lp
}
示例8: main
func main() {
Values[1] = "z"
Values[2] = "y"
Values[3] = "x"
Values[4] = "q"
Values[5] = "w"
Values[6] = "v"
Values[7] = "u"
Values[8] = "t"
Values[9] = "s"
Values[10] = "r"
for _, each := range ListOfServers {
HashingMapping[calculateHashValue(each)] = each
}
for k, _ := range Values {
HashingMapping[calculateHashValue(strconv.Itoa(k))] = strconv.Itoa(k)
}
for k, _ := range HashingMapping {
SortedHashingMappingKeys = append(SortedHashingMappingKeys, k)
}
sort.Strings(SortedHashingMappingKeys)
mux := httprouter.New()
mux.PUT("/keys/:key/:value", putDataTo)
mux.GET("/keys/:key", getRequest)
server := http.Server{
Addr: "0.0.0.0:8000",
Handler: mux,
}
server.ListenAndServe()
}
示例9: RunServer
func RunServer(listenAddress string) (*MemoDb, error) {
fmt.Println("Nasluch na", listenAddress)
listener, err := net.Listen("tcp", listenAddress)
if err != nil {
return nil, err
}
memoDb := &MemoDb{Objects: make(map[string]Object, 0), Listener: listener}
// obsługa endpointów HTTP przez https://godoc.org/github.com/emicklei/go-restful
container := restful.NewContainer()
ws := &restful.WebService{}
ws.Path("/")
ws.Route(ws.GET("/").To(memoDb.Help))
ws.Route(ws.PUT("/v1/objects/{object_id}").To(memoDb.Put))
ws.Route(ws.GET("/v1/objects/{object_id}").To(memoDb.Get))
container.Add(ws)
// nasłuch i obsługa zapytań w tle, w osobnej gorutynie
go func() {
server := http.Server{Handler: container}
server.Serve(listener)
}()
return memoDb, nil
}
示例10: Listen
func (p *Proxy) Listen() error {
err := p.cleanup()
if err != nil {
return err
}
addr, err := net.ResolveUnixAddr("unix", "/var/run/docker.sock")
if err != nil {
return err
}
raw, err := net.ListenUnix("unix", addr)
if err != nil {
return err
}
listener := &stoppableListener{
UnixListener: raw,
done: p.done,
}
err = os.Chmod("/var/run/docker.sock", 0777)
if err != nil {
return err
}
server := http.Server{
Handler: http.HandlerFunc(p.handler),
}
return server.Serve(listener)
}
示例11: Serve
// Serve starts the server (http.DefaultServeMux) on given port, loops forever.
func (s *ProxyServer) Serve(port int) error {
server := http.Server{
Addr: fmt.Sprintf(":%d", port),
Handler: s.mux,
}
return server.ListenAndServe()
}
示例12: startP2PServer
func startP2PServer() {
p2pListener, err := net.Listen("tcp", ":35800")
if err != nil {
log.Fatal(err)
}
p2psl, err = tcpNew(p2pListener)
if err != nil {
log.Fatal(err)
}
P2pRouter := httprouter.New()
P2pRouter.GET("/", sayhello)
P2pRouter.GET("/pull/:repo/:dataitem/:tag", p2p_pull)
P2pRouter.GET("/health", p2pHealthyCheckHandler)
p2pserver := http.Server{Handler: P2pRouter}
wg.Add(1)
defer wg.Done()
log.Info("p2p server start")
p2pserver.Serve(p2psl)
log.Info("p2p server stop")
}
示例13: listenAndServe
func (h *Handler) listenAndServe(proto, addr, group string) error {
server := http.Server{
Addr: addr,
Handler: h.mux,
}
start := make(chan struct{})
var l net.Listener
var err error
switch proto {
case "tcp":
l, err = newTCPSocket(addr, nil, start)
if err == nil {
err = writeSpec(group, l.Addr().String())
}
case "unix":
var s string
s, err = fullSocketAddr(addr)
if err == nil {
l, err = newUnixSocket(s, group, start)
}
}
if err != nil {
return err
}
close(start)
return server.Serve(l)
}
示例14: main
/*
main registers this RP's HTTP request handlers; creates the HTTPS client for issuing OP ID Token requests and starts its HTTP server.
*/
func main() {
var (
certPool *x509.CertPool
server http.Server
err error
)
//This aeadCipher is used to encrypt/decrypt the Authn Request Cookie that is used to pass the Authn Request State value
//from the Authn Request to the Authn Response.
aeadCipher, err = aead.NewAEADCipher()
if err != nil {
return
}
//Initialize an HTTPS capable client and replace the default aws HTTP client that doesn't support HTTPS
certPool = x509.NewCertPool()
certPool.AppendCertsFromPEM([]byte(certbndl.PemCerts))
opClient = &http.Client{
Transport: &http.Transport{
TLSClientConfig: &tls.Config{RootCAs: certPool},
},
}
//Start the service
server = http.Server{Addr: ":443", ReadTimeout: 10 * time.Minute, WriteTimeout: 10 * time.Minute, ErrorLog: logger.Logger()}
http.HandleFunc("/login", handleLogin)
http.HandleFunc("/authn-token", handleAuthnToken)
logger.Println("Starting oidc on " + exthost + ":443")
err = server.ListenAndServeTLS("resilient-networks.crt", "resilient-networks.key")
if err != nil {
logger.Fatal(err)
}
}
示例15: ServeFd
// ServeFD creates an http.Server and sets it up to serve given a socket activated
// argument.
func ServeFd(addr string, handle http.Handler) error {
ls, e := systemd.ListenFD(addr)
if e != nil {
return e
}
chErrors := make(chan error, len(ls))
// Since ListenFD will return one or more sockets we have
// to create a go func to spawn off multiple serves
for i := range ls {
listener := ls[i]
go func() {
httpSrv := http.Server{Handler: handle}
chErrors <- httpSrv.Serve(listener)
}()
}
for i := 0; i < len(ls); i += 1 {
err := <-chErrors
if err != nil {
return err
}
}
return nil
}