Loading cmd/perplex-client/main.go 0 → 100644 +34 −0 Original line number Diff line number Diff line package main import ( "bufio" "log" "net" ) func main() { log.Printf("Started perplex client.") conn, err := net.Dial("tcp", "localhost:4321") if err != nil { log.Panic(err) } defer disconnect(conn) log.Printf("Connected to: %v->%v", conn.LocalAddr(), conn.RemoteAddr()) reader := bufio.NewReader(conn) //writer := bufio.NewWriter(conn) line, prefix, err := reader.ReadLine() if err != nil { log.Panic(err) } text := string(line) log.Printf("isPrefix: %v - line: %s", prefix, text) conn.Write([]byte("quit\n")) } func disconnect(conn net.Conn) { defer conn.Close() log.Printf("Disconnecting from: %v->%v", conn.LocalAddr(), conn.RemoteAddr()) } cmd/perplex-server/main.go 0 → 100644 +60 −0 Original line number Diff line number Diff line package main import ( "bufio" "log" "net" ) func main() { log.Printf("Started perplex server.") ln, err := net.Listen("tcp", ":4321") if err != nil { log.Panic(err) } defer ln.Close() for { conn, err := ln.Accept() if err != nil { log.Printf("Accept() failed with: %v", err) } go handleConnection(conn) } } func handleConnection(conn net.Conn) { defer disconnect(conn) log.Printf("Connected from: %v->%v", conn.RemoteAddr(), conn.LocalAddr()) banner := "Welcome to perplex!\n" _, err := conn.Write([]byte(banner)) if err != nil { log.Print(err) } reader := bufio.NewReader(conn) loop := true for loop { line, _, err := reader.ReadLine() if err != nil { log.Print(err) } else { text := string(line) switch text { case "help": help := ` The perplex server currently understands: help : display this text quit : terminate the connection ` conn.Write([]byte(help)) case "quit": loop = false conn.Write([]byte("Good-Bye!\n")) } } } } func disconnect(conn net.Conn) { defer conn.Close() log.Printf("Disconnected from: %v->%v", conn.RemoteAddr(), conn.LocalAddr()) } Loading
cmd/perplex-client/main.go 0 → 100644 +34 −0 Original line number Diff line number Diff line package main import ( "bufio" "log" "net" ) func main() { log.Printf("Started perplex client.") conn, err := net.Dial("tcp", "localhost:4321") if err != nil { log.Panic(err) } defer disconnect(conn) log.Printf("Connected to: %v->%v", conn.LocalAddr(), conn.RemoteAddr()) reader := bufio.NewReader(conn) //writer := bufio.NewWriter(conn) line, prefix, err := reader.ReadLine() if err != nil { log.Panic(err) } text := string(line) log.Printf("isPrefix: %v - line: %s", prefix, text) conn.Write([]byte("quit\n")) } func disconnect(conn net.Conn) { defer conn.Close() log.Printf("Disconnecting from: %v->%v", conn.LocalAddr(), conn.RemoteAddr()) }
cmd/perplex-server/main.go 0 → 100644 +60 −0 Original line number Diff line number Diff line package main import ( "bufio" "log" "net" ) func main() { log.Printf("Started perplex server.") ln, err := net.Listen("tcp", ":4321") if err != nil { log.Panic(err) } defer ln.Close() for { conn, err := ln.Accept() if err != nil { log.Printf("Accept() failed with: %v", err) } go handleConnection(conn) } } func handleConnection(conn net.Conn) { defer disconnect(conn) log.Printf("Connected from: %v->%v", conn.RemoteAddr(), conn.LocalAddr()) banner := "Welcome to perplex!\n" _, err := conn.Write([]byte(banner)) if err != nil { log.Print(err) } reader := bufio.NewReader(conn) loop := true for loop { line, _, err := reader.ReadLine() if err != nil { log.Print(err) } else { text := string(line) switch text { case "help": help := ` The perplex server currently understands: help : display this text quit : terminate the connection ` conn.Write([]byte(help)) case "quit": loop = false conn.Write([]byte("Good-Bye!\n")) } } } } func disconnect(conn net.Conn) { defer conn.Close() log.Printf("Disconnected from: %v->%v", conn.RemoteAddr(), conn.LocalAddr()) }