package conn import ( "bufio" "fmt" "net" ) const ( Port = ":3030" Type = "tcp4" ) func StartSimple(handler func(conn net.Conn)) error { l, err := net.Listen(Type, Port) if err != nil { return err } defer l.Close() fmt.Println(fmt.Sprintf("Listening on port %s", Port)) for { c, err := l.Accept() if err != nil { return err } go handler(c) if err != nil { return err } } } func ReadAndRespond(c net.Conn, process func([]byte) []byte) error { defer c.Close() sc := bufio.NewScanner(c) for sc.Scan() { response := process(sc.Bytes()) _, err := c.Write(response) if err != nil { return err } } if err := sc.Err(); err != nil { return err } return nil }