Beispiel #1
0
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)
	}
}
Beispiel #2
0
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)
}