0.1版本:基础server构建
新建一个文件夹,名字叫project_tongxin,在project_tongxin文件夹里面新建两个go文件,分别叫做main.go和server.go
server.go代码:
package main
import(
"fmt"
"net"
)
type Server struct{
IP string
Port int
}
// 创建一个server的接口
func NewServer(ip string, port int) *Server{
server := &Server{
IP: ip,
Port: port,
}
return server
}
func (this *Server) Handler(conn net.Conn){
//... 当前链接的业务
fmt.Println("链接建立成功")
}
//启动服务器的接口
//Server的成员函数
func (this *Server) Start(){
// socket listen
listener, err := net.Listen("tcp", fmt.Sprintf("%s:%d", this.IP, this.Port))
if err != nil{
fmt.Println("net.Listen err: ", err)
return
}
// close listen socket
defer listener.Close()
for{
// accept
conn, err := listener.Accept()
if err != nil{
fmt.Println("listener accept err: ", err)
continue
}
//do handler
go this.Handler(conn)
}
}
main.go代码:
package main
func main(){
server := NewServer("127.0.0.1", 22221)
server.Start()
}
启动命令:
go run main.go server.go
运行结果:
在浏览器上输入127.0.0.1:22221,则在go的终端上能看到输出:
参考:
https://www.bilibili.com/video/BV1gf4y1r79E?p=38&vd_source=c29cd407b49283eb7b9dd225b12c4066