From e0e43c674960e830694994b57f15dfb5d2d40ec5 Mon Sep 17 00:00:00 2001 From: kercylan98 Date: Fri, 5 May 2023 17:01:55 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=BC=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game/builtin/examples/chat/client/main.go | 40 +++++++++++++++++++ game/builtin/examples/chat/main.go | 29 ++++++++++++++ .../{gameplay_time.go => main.go} | 0 3 files changed, 69 insertions(+) create mode 100644 game/builtin/examples/chat/client/main.go create mode 100644 game/builtin/examples/chat/main.go rename game/builtin/examples/gameplay_time/{gameplay_time.go => main.go} (100%) diff --git a/game/builtin/examples/chat/client/main.go b/game/builtin/examples/chat/client/main.go new file mode 100644 index 0000000..e476934 --- /dev/null +++ b/game/builtin/examples/chat/client/main.go @@ -0,0 +1,40 @@ +package main + +import ( + "bufio" + "fmt" + "net" + "os" + "strings" +) + +func main() { + conn, err := net.Dial("tcp", "server.natappfree.cc:37775") + if err != nil { + panic(err) + return + } + defer conn.Close() // 关闭TCP连接 + inputReader := bufio.NewReader(os.Stdin) + go func() { + for { + buf := [512]byte{} + n, err := conn.Read(buf[:]) + if err != nil { + continue + } + fmt.Println(string(buf[:n])) + } + }() + for { + input, _ := inputReader.ReadString('\n') // 读取用户输入 + inputInfo := strings.Trim(input, "\r\n") + if strings.ToUpper(inputInfo) == "Q" { // 如果输入q就退出 + return + } + _, err := conn.Write([]byte(inputInfo)) // 发送数据 + if err != nil { + return + } + } +} diff --git a/game/builtin/examples/chat/main.go b/game/builtin/examples/chat/main.go new file mode 100644 index 0000000..ecef6f1 --- /dev/null +++ b/game/builtin/examples/chat/main.go @@ -0,0 +1,29 @@ +package main + +import ( + "fmt" + "go.uber.org/zap" + "minotaur/server" + "minotaur/utils/log" +) + +func main() { + srv := server.New(server.NetworkTCP) + srv.RegConnectionReceivePacketEvent(func(srv *server.Server, conn *server.Conn, packet []byte) { + srv.GetConnections().RangeSkip(func(id string, c *server.Conn) bool { + if id == conn.GetID() { + return false + } + + if err := c.Write([]byte(fmt.Sprintf("[%s]: %s", conn.GetID(), string(packet)))); err != nil { + log.Debug("Message", zap.Error(err)) + } + + return true + }) + }) + + if err := srv.Run(":8888"); err != nil { + panic(err) + } +} diff --git a/game/builtin/examples/gameplay_time/gameplay_time.go b/game/builtin/examples/gameplay_time/main.go similarity index 100% rename from game/builtin/examples/gameplay_time/gameplay_time.go rename to game/builtin/examples/gameplay_time/main.go