package main
import(
"bufio"
"fmt"
"net"
"os"
"strings"
)
func main() {
arguments := os.Args
if len(arguments) == 1 {
fmt.Println("Please provide a server:port string!")
return
}
CONNECT := arguments[1]
tcpAddr, err := net.ResolveTCPAddr("tcp4", CONNECT)
if err != nil {
fmt.Println("ResolveTCPAddr:", err.Error())
return
}
conn, err := net.DialTCP("tcp4", nil, tcpAddr)
if err != nil {
fmt.Println("DialTCP:", err.Error())
return
}
for {
reader := bufio.NewReader(os.Stdin)
fmt.Print(">> ")
text, _ := reader.ReadString('\n')
fmt.Fprintf(conn, text + "\n")
message, _ := bufio.NewReader(conn).ReadString('\n')
fmt.Print("->: " + message)
if strings.TrimSpace(string(text)) == "STOP" {
fmt.Println("TCP client exiting...")
conn.Close()
return
}
}
}
$ go run otherTCPclient.go localhost:8001
>> Hello from otherTCPclient.go!
->: Hi from netcat!
>> STOP
->:
TCP client exiting...
$ nc -l 127.0.0.1 8001
Hello from otherTCPclient.go!
Hi from netcat!
STOP