即时通信系统版本预览:
- 版本一:构建基础server
- 版本二:用户上线功能
- 版本三:用户消息广播机制
- 版本四:用户业务层封装
- 版本五:在线用户查询
- 版本六:修改用户名
- 版本七:超时强踢功能
- 版本八:私聊功能
- 版本九:客户端实现
版本一 :构建server
创建文件
- main.go
- server.go
server.go中的方法
- 创建server对象
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() {
listen, err := net.Listen("tcp", fmt.Sprintf("%s:%d", this.Ip, this.Port))
if err != nil {
rmt.println(" Listen accept err :", err)
}
defer listen.Close()
for {
conn, err := listen.Accept()
if err != nil {
fmt.println("lsiten accept err :", err)
continue
}
go this.Handler(conn)
}
}
main.go
- 创建Server对象,调用start方法启动Server
server := NewServer("127.0.0.1",8888)
server.Start()
iterm 或者 cmd / IDE中 Terminal 操作
- 编译
go build -o server server.go main.go
- 通过本地链接127.0.0.1:8888
nc 127.0.0.1 8888