一、背景内容
总结golang基础内容,通过一个实例实时 IM系统简进行总结知识
二、简要的图
简要说明:
1.在server.go中,创建一个Newserver返回server指针的结构体
2.正对这个指针结构体实现两个方法
Handler(处理方法),处理逻辑都是在这里书写
Start(启动方法)端口启动以及调用处理方法
具体看下代码即可
三、代码
涉及的代码:
main.go
package main
func main() {
server := NewServer("127.0.0.1", 8888)
server.Start()
}
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("链接建立成功")
}
//启动服务器的接口
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)
}
}
四、运行代码方式,运行涉及项目的两个文件
go run .\main.go .\server.go
五、验证方式;
客户端telnet验证,如果你的系统没有安装telnet自行开启即可,很简单
5.1服务端开启
5.2客户端连接