【Go快速入门】— 项目实例:Golang即时通信系统(v0.1基础server构建)

Go Alice 2年前 (2022-04-05) 448次浏览 0个评论

一、架构图

1、项目架构图

【Go 快速入门】—  项目实例:Golang 即时通信系统(v0.1 基础 server 构建)

2、9 个小版本迭代

二、版本一:构建基础 Server

server.go

1、定义 Server 类

type Server struct {
	Ip string
	Port int
}

2、创建一个 server 对象

//创建一个 server 的接口
func NewServer(ip string, port int) *Server {
	server := &Server{
		Ip: ip,
		Port: port,
	}

	return server
}

3、启动 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)
	}
}

4、处理链接业务

func (this *Server) Handler(conn net.Conn) {
	//当前链接的业务
	fmt.Println("链接建立成功")
}

【Go 快速入门】—  项目实例:Golang 即时通信系统(v0.1 基础 server 构建)
main.go

func main()  {
	server := NewServer("127.0.0.1", 8888)
	server.Start()
}

【Go 快速入门】—  项目实例:Golang 即时通信系统(v0.1 基础 server 构建)
同时编译两个文件:

$ go build -o server main.go server.go

然后运行编译的文件

$ ./server

测试连接服务

$ nc 127.0.0.1 8888

【Go 快速入门】—  项目实例:Golang 即时通信系统(v0.1 基础 server 构建)

 

分享:Golang 学习视频地址:8 小时转职 Golang 工程师(如果你想低成本学习 Go 语言)


女程序员博客 , 版权所有丨本站采用BY-NC-SA协议进行授权 , 转载请注明【Go 快速入门】— 项目实例:Golang 即时通信系统(v0.1 基础 server 构建)

【声明】:本博客仅为分享信息,不参与任何交易,也非中介,所有内容仅代表个人观点,均不作直接、间接、法定、约定的保证,读者购买风险自担。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。

【关于安全】:任何 IDC 都有倒闭和跑路的可能,备份永远是最佳选择,服务器也是机器,不勤备份是对自己极不负责的表现,请保持良好的备份习惯。

喜欢 (1)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址