草庐IT

listenAndServe

全部标签

go - Web 地址路由在 http.ListenAndServe 上运行良好,但在 cgi.Serve() 上运行失败

我正在使用Go开发网站。服务器限制要求我使用CGI。当我使用http.ListenAndServe()(在下面注释掉)在本地测试以下代码时,会根据请求的地址正确调用各种处理程序。但是,如果我改为使用cgi.Serve(),则会对所有地址执行默认路由器(即始终执行“/”的处理程序)。如果能提供有关如何解决此问题的任何线索,我将不胜感激。编辑:这是我能想到的最简单的测试用例来说明问题://=============简化代码================//packagemainimport("fmt""net/http""net/http/cgi")funcdefaultHandler(

http - 我优雅的停止 http.ListenAndServe 失败

我是一名新手Go程序员。我正在编写一个Web应用程序,我需要服务器在关闭之前等到发出事件请求。我写了一个等待5秒回答的处理程序。如果我发出请求并停止服务器(在5秒之前),我会收到“无法连接”错误。有一种方法可以停止监听新请求并等待事件请求完成吗?这里是我的例子funcmain(){log.Infof("Starting(PID%d)...",os.Getpid())stop:=make(chanos.Signal,1)signal.Notify(stop,syscall.SIGTERM)signal.Notify(stop,syscall.SIGINT)listenAt:="127.0

go - net.Listen 和 http.ListenAndServe 功能的区别

我是Go和网络的新手。我知道net.Listen和http.ListenAndServe都创建了一个服务器。但它们的功能有什么区别? 最佳答案 基本上,作为documentation对于net.Listen说:网络必须是“tcp”、“tcp4”、“tcp6”、“unix”或“unixpacket”。虽然http.ListenAndServe创建了一个HTTP服务器。 关于go-net.Listen和http.ListenAndServe功能的区别,我们在StackOverflow上找到一

http - ListenAndServe 和 Server.Serve

有什么区别ln,err:=net.Listen("tcp",addr)iferr!=nil{returnerr}gosrv.Serve(ln)和ln,err:=net.Listen("tcp",addr)iferr!=nil{returnerr}returnsrv.Serve(tcpKeepAliveListener{ln.(*net.TCPListener)})?我正在创建我自己的ListenAndServe(第一个代码片段),以便我可以在调用我的ListenAndServe后立即执行代码并向我的服务器发送请求。但是,我无法使用tcpKeepAliveListener,因为它未导出。

go - 在 ListenAndServe 中调用多个句柄

我想在http包的ListenAndServe方法中使用多个处理程序。例如:iferr:=http.ListenAndServe(":"+s.config.Port,handlers.LoggingHandler(os.Stdout,s.router),handlers.CORS()(r.router));err!=nil{问题:每次我收到以下错误:pkg/server/server.go:30:31:toomanyargumentsincalltohttp.ListenAndServehave(string,http.Handler,http.Handler)want(string,

golang http 服务器 http.ListenAndServe 仅适用于本地主机?

我想使用golang在AzureLinuxVM中实现一个HTTP服务器。下面是简单的golang服务器代码,监听端口30175。该端口上没有防火墙。packagemainimport("fmt""log""net/http")funchandler(whttp.ResponseWriter,r*http.Request){fmt.Fprintf(w,"Hithere,Ilove%s!",r.URL.Path[1:])}funcmain(){http.HandleFunc("/",handler)log.Fatal(http.ListenAndServe(":30175",nil))}s

unit-testing - 如何测试/重构测试调用 http.ListenAndServe 的函数

我正在学习go并且正在开发一个简单的服务,该服务从队列中提取一些数据并将其保存在数据库中。它还运行一个网络服务器以允许抓取数据。现在我有两个go文件(为简洁起见省略了一些文本):funcmain(){parseConfig()s:=&Service{ServiceConfig:config}err:=s.Run()iferr!=nil{panic(err)}}然后是服务的定义(为简洁起见,再次省略了一些部分):func(s*Service)Run()error{iferr:=s.validate();err!=nil{returnerr}iferr:=s.initDB();err!=n

Go语言网络编程:HTTP服务端之底层原理与源码分析——http.HandleFunc()、http.ListenAndServe()

一、启动http服务import("net/http")funcmain(){http.HandleFunc("/ping",func(whttp.ResponseWriter,r*http.Request){w.Write([]byte("ping...ping..."))})http.ListenAndServe(":8999",nil)}在Golang只需要几行代码便能启动一个http服务,在上述代码中,完成了两件事:调用http.HandleFunc方法,注册了对应于请求路径/ping的handler函数调用http.ListenAndServe,启动了一个端口为8999的http服务

asynchronous - net/http 中从 1.1.2 到 1.2 的不同行为

在go1.1.2之前,这段代码打印了最后一个log.Println并随后执行了代码,因为1.2我必须将http.ListenAndServe()作为单独的go例程运行。1.1.2的更新日志没有指出任何此类更改,我也不知道这是否是让网络服务器与其他代码一起运行的正确方法。log.Println("StartingWebAPIServer")http.HandleFunc("/",bot.httpHandler())http.ListenAndServe(":8181",nil)//withpreceeding"go"in1.2tomakemyprogramworkinglog.Print

asynchronous - net/http 中从 1.1.2 到 1.2 的不同行为

在go1.1.2之前,这段代码打印了最后一个log.Println并随后执行了代码,因为1.2我必须将http.ListenAndServe()作为单独的go例程运行。1.1.2的更新日志没有指出任何此类更改,我也不知道这是否是让网络服务器与其他代码一起运行的正确方法。log.Println("StartingWebAPIServer")http.HandleFunc("/",bot.httpHandler())http.ListenAndServe(":8181",nil)//withpreceeding"go"in1.2tomakemyprogramworkinglog.Print