From af0da8dce8d573a426f56ded3578b86e9fd9745c Mon Sep 17 00:00:00 2001 From: Kyren223 Date: Sat, 5 Oct 2024 20:24:05 +0300 Subject: feat: client receive request as stdin input --- internal/client/client.go | 39 ++++++++++++++++++++++++++++++--------- 1 file changed, 30 insertions(+), 9 deletions(-) (limited to 'internal/client/client.go') diff --git a/internal/client/client.go b/internal/client/client.go index b3626e2..b60b320 100644 --- a/internal/client/client.go +++ b/internal/client/client.go @@ -1,33 +1,54 @@ package client import ( + "bufio" + "fmt" "net" + "os" + "strings" + "time" "github.com/kyren223/eko/internal/utils/log" ) func Run() { + log.SetLevel(log.LevelDebug) + log.Info("Client started, waiting for user input...") + for { + fmt.Print("> ") + input, _ := bufio.NewReader(os.Stdin).ReadString('\n') + input = strings.TrimSpace(input) + if input == ":q" || input == "exit" || input == "quit" { + break + } + log.Debug("Input: %v", input) + err := processRequest(input) + if err != nil { + log.Error("%v", err) + } + } +} + +func processRequest(request string) error { conn, err := net.Dial("tcp", ":7223") if err != nil { - log.Error("Unable to establish connection with server: %v", err) - return + return fmt.Errorf("Unable to establish connection with server: %v", err) } defer conn.Close() + conn.SetDeadline(time.Now().Add(time.Second)) log.Info("Established connection to server: %v", conn.RemoteAddr().String()) - message := "Hello, server!" - _, err = conn.Write([]byte(message)) + _, err = conn.Write([]byte(request)) if err != nil { - log.Error("Unable to send message: %v", err) - return + return fmt.Errorf("Unable to send request: %v", err) } buffer := make([]byte, 1024) n, err := conn.Read(buffer) if err != nil { - log.Error("Unable to read response: %v", err) - return + return fmt.Errorf("Unable to receive response: %v", err) } - log.Info("Received from server: %v", string(buffer[:n])) + log.Info("Response from server: %v", string(buffer[:n])) + return nil } -- cgit v1.3.1