func serve(m ma.Multiaddr, handler func(string) string) { ln, err := manet.Listen(m) if err != nil { panic(err) } for { c, err := ln.Accept() if err != nil { log.Println(err) return } go echo(c, handler) } }
func main() { listen := flag.Bool("l", false, "listen mode, for inbound connections") flag.Parse() args := flag.Args() if len(args) < 1 { flag.Usage() os.Exit(1) } m, err := ma.NewMultiaddr(args[0]) if err != nil { log.Fatal(err) } var c manet.Conn if *listen { ln, err := manet.Listen(m) if err != nil { log.Fatal(err) } c, err = ln.Accept() if err != nil { log.Fatal(err) } } else { c, err = manet.Dial(m) if err != nil { log.Fatal(err) } } go io.Copy(c, os.Stdin) io.Copy(os.Stdout, c) }