go系列(五)即时通信系统案例

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值