package main import ( "bufio" "fmt" "net" "os" "strings" ) func main() { ln, err := net.Listen("tcp", ":1302") catchErr(err) fmt.Printf("Listening on port 1302...\n") for { conn, err := ln.Accept() catchErr(err) go handleConn(conn) } } func handleConn(conn net.Conn) { defer conn.Close() message, err := bufio.NewReader(conn).ReadString('\n') catchErr(err) fmt.Printf("Message received: %v", string(message)) newMsg := strings.ToUpper(message) conn.Write([]byte(newMsg + "\n")) } func catchErr(err error) (errHappened bool) { errHappened = false if err != nil { errHappened = true fmt.Println(err) os.Exit(2) } return errHappened }