I am trying to write a simple client in Golang but it exits as soon as I run it,
package main
import (
"fmt"
"net"
"os"
"bufio"
"sync"
)
func main() {
conn, err := net.Dial("tcp", "localhost:8081")
if err != nil {
fmt.Println(err);
conn.Close();
}
fmt.Println("Got connection, type anything...new line sends and quit quits the session");
go sendRequest(conn)
}
func sendRequest(conn net.Conn) {
reader := bufio.NewReader(os.Stdin)
var wg sync.WaitGroup
for {
buff := make([]byte, 2048);
line, err := reader.ReadString('
')
wg.Add(1);
if err != nil {
fmt.Println("Error while reading string from stdin",err)
conn.Close()
break;
}
copy(buff[:], line)
nr, err := conn.Write(buff)
if err != nil {
fmt.Println("Error while writing from client to connection", err);
break;
}
fmt.Println(" Wrote : ", nr);
wg.Done()
buff = buff[:0]
}
wg.Wait()
}
And when trying to run it, I get the following as output
Got connection, type anything...new line sends and quit quits the session
Process finished with exit code 0
I am expecting that the code would make stdin(terminal) open and wait for input text but it exits immediately. Should I be replacing the code with something else for reading from stdin