首先说明学习路径,一个网站值得参考:Go语言中文网,https://studygolang.com/;文档,http://docscn.studygolang.com/doc/。https://www.runoob.com/go/go-tutorial.html
Go语言实现服务器和客户端比较简单
服务器:
listen
accept
recv
客户端
dial
write
1.server.go
package main import ( "log" "net" "os" ) func recvMessage(client net.Conn) error { var message []byte message = make([]byte, 1024) for { len, _ := client.Read(message) if len > 0 { log.Println(message[0:len]) } } return nil } func main() { server, err := net.Listen("tcp", "localhost:9700") if err != nil { log.Fatal("start server failed! ") os.Exit(1) } defer server.Close() log.Println("server is running...") for { client, err := server.Accept() if err != nil { log.Fatal("Accept error ") continue } log.Println("the client is connectted...") go recvMessage(client) } }
2.client.go
package main import ( "log" "net" "os" ) func main() { client, err := net.Dial("tcp", "localhost:9700") if err != nil { log.Fatal("Client is dailing failed!") os.Exit(1) } client.Write([]byte("i am client")) client.Close() }
如何使用 Go 语言搭建企业级高并发服务器?
提到「高并发」,就不得不提天生为高并发而生的 Go 语言:
最详细的框架比较,通过尽可能多的角度(人气,社区支持,内置功能等)来比较最知名的几个Web 框架。
Beego: 一个Go语言下开源的,高性能Web框架
* https://github.com/astaxie/beego
* https://beego.me
Buffalo: 一个Go语言下快速Web开发框架
* https://github.com/gobuffalo/buffalo
* https://gobuffalo.io
Echo: 一个高性能,极简的Web框架
* https://github.com/labstack/echo
* https://echo.labstack.com
Gin: 一个Go语言写的HTTP Web框架。它提供了Martini风格的API并有更好的性能。
* https://github.com/gin-gonic/gin
* https://gin-gonic.github.io/gin
Iris: 目前发展最快的Go Web框架。提供完整的MVC功能并且面向未来。
* https://github.com/kataras/iris
* https://iris-go.com
Revel: 一个高生产率,全栈Go语言的Web框架。
* https://github.com/revel/revel
* https://revel.github.io