 HTTP Echo Server,第1张 [UMU 学 golang](5) HTTP Echo Server,第1张](/aiimages/%5BUMU+%E5%AD%A6+golang%5D%285%29+HTTP+Echo+Server.png)
做加速时经常需要用到 http Echo Server 来测试加速有没有成功,如果成功了,是显示请求来自加速代理服务器。原来用 node.Js 写了一个,代码如下:
var http = require('http');http.createServer( function (req,res) { res.writehead(200,{'Content-Type': 'text/plain'}); var ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress || req.socket.remoteAddress || req.connection.socket.remoteAddress; var ua = req.headers['user-agent']; res.end(ip + '\n' + ua); }).Listen(80);console.log('Server is running...'); 现在改为 golang,并稍微改进了一下:
package mainimport ( "fmt" "net/http" "os" "time")func main() { var addr string if len(os.Args) > 1 { addr = ":" + os.Args[1] } else { addr = ":80" } server := http.Server{ Addr: addr,Handler: &MyHandler{},ReadTimeout: 5 * time.Second,} err := server.ListenAndServe() fmt.Println(err)}type MyHandler struct{}func (*MyHandler) Servehttp(w http.ResponseWriter,r *http.Request) { info := r.RemoteAddr + " @ " + time.Now().String() + "\r\n" + r.Method + " " + r.RequestURI + "\r\n" + "Host: " + r.Host + "\r\n" + "UserAgent: " + r.UserAgent() + "\r\n" w.Write([]byte(info)) fmt.Println(info)} 总结 以上是内存溢出为你收集整理的[UMU 学 golang](5) HTTP Echo Server全部内容,希望文章能够帮你解决[UMU 学 golang](5) HTTP Echo Server所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)