A simple tcp server/client go framework.
- 极其简单的使用代码
- 经典Server/Client模式
- 解决经典粘包问题
- Server支持主动关闭
- Client支持Send+Write\OnlySend模式
- 提供默认的Message协议,自包含版本、命令、数据,应用可直接使用
- 支持自定义HeadFlag设定,用于验证消息头
func main(){
server, err := connx.NewServer("127.0.0.1:7069", onConnHandler)
if err != nil{
fmt.Println("GetNewServer error", err)
return
}
fmt.Println("GetNewServer begin listen")
server.Start()
}
func onConnHandler(conn *connx.Connection) error{
msg, err := conn.ParseMessage()
fmt.Println(msg, err)
msgReply := connx.ResponseMessage("echo ok")
conn.SendMessage(msgReply)
return nil
}
func main(){
client := connx.NewClient("127.0.0.1:7069", onConnHandler)
go func(){
for{
err := client.Send(connx.RequestMessage("test client"))
if err != nil{
fmt.Println("Send login message failed", err)
}else{
fmt.Println("Send login message success")
}
time.Sleep(time.Second*10)
}
}()
for{
select{}
}
}
func onConnHandler(conn *connx.Connection) error{
msg, err := conn.ParseMessage()
fmt.Println(msg, err)
return nil
}