summaryrefslogtreecommitdiff
path: root/internal/client/client.go
diff options
context:
space:
mode:
authorKyren223 <ulmliad223@gmail.com>2024-10-05 20:24:05 +0300
committerKyren223 <ulmliad223@gmail.com>2024-10-05 20:24:05 +0300
commitaf0da8dce8d573a426f56ded3578b86e9fd9745c (patch)
treee7414313fcfa7a5442111016ea5b52562997df61 /internal/client/client.go
parenta835059ab2088a3eb7a10bf67b266be8fc90507a (diff)
feat: client receive request as stdin input
Diffstat (limited to 'internal/client/client.go')
-rw-r--r--internal/client/client.go39
1 files changed, 30 insertions, 9 deletions
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
}