Go网络通信之服务端开发|Go主题月

243 阅读1分钟

网络通信之服务端开发介绍:

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

image.png 我们可以看到掘金.html的内容。

而进入http://127.0.0.1:8080/hello 我们可以获取请求的方法、请求的协议等等

image.png

利用GO发起http请求(post and get)|Go主题月

juejin.cn/post/694610…

利用Go制作一个基于UDP协议的客户端服务端通信程序|Go主题月

juejin.cn/post/694581…

利用Go制作一个基于TCP协议的客户端服务端通信程序|Go主题月 juejin.cn/post/694541…