网络通信之服务端开发介绍:
Go语言标准库内置了net/http包,涵盖了HTTP客户端和服务端的具体实现。使用net/http包,我们可以很方便地编写HTTP客户端和服务端。
从下面几行代码实现服务端就可以更好的知道Go的强大了!
代码
package main
import (
"io/ioutil"
"net/http"
"strconv"
)
func HandleGetOut(writer http.ResponseWriter,request *http.Request) {
writer.Write([]byte("Get Out!\n呵呵"))
}
func main() {
http.HandleFunc(
//路由
"/hello",
//路由处理的函数
//writer 响应的书写器
//request 用户的请求
func(writer http.ResponseWriter, request *http.Request) {
writer.Write([]byte("请求的方法="+request.Method))
writer.Write([]byte("请求的内容长度="+strconv.Itoa(int(request.ContentLength))))
writer.Write([]byte("请求的主机="+request.Host))
writer.Write([]byte("请求的协议="+request.Proto))
writer.Write([]byte("请求的远程地址="+request.RemoteAddr))
writer.Write([]byte("请求的路由="+request.RequestURI))
writer.Write([]byte("朕已收到请求!"))
})
//路由2
http.HandleFunc("/getout",HandleGetOut)
http.HandleFunc("/juejing", func(writer http.ResponseWriter, request *http.Request) {
bytes, _ := ioutil.ReadFile("C:\\Users\\Regan\\Desktop\\掘金.html")
writer.Write(bytes)
})
http.ListenAndServe("0.0.0.0:8080",nil)
}
http.HandleFunc是注册处理函数,用户连接,自动调用指定的处理函数
http.ListenAndServe是监听绑定
writer 响应的书写器,可以给客户端回复数据。
request 用户的请求,读取客户端发送的数据。
- writer.Write([]byte("请求的方法="+request.Method))
- writer.Write([]byte("请求的内容长度="+strconv.Itoa(int(request.ContentLength))))
- writer.Write([]byte("请求的主机="+request.Host))
- writer.Write([]byte("请求的协议="+request.Proto))
- writer.Write([]byte("请求的远程地址="+request.RemoteAddr))
- writer.Write([]byte("请求的路由="+request.RequestURI))
运行代码
进入http://localhost:8080/juejing
我们可以看到掘金.html的内容。
而进入http://127.0.0.1:8080/hello 我们可以获取请求的方法、请求的协议等等
利用GO发起http请求(post and get)|Go主题月
利用Go制作一个基于UDP协议的客户端服务端通信程序|Go主题月
利用Go制作一个基于TCP协议的客户端服务端通信程序|Go主题月 juejin.cn/post/694541…