whispering_gophers/util/dump/dump.go
2019-07-02 11:37:42 +02:00

41 lines
735 B
Go

// This program listens to the host and port specified by the -listen flag and
// dumps any incoming data to standard output.
package main
import (
"flag"
"fmt"
"io"
"log"
"net"
"os"
)
var addr = flag.String("listen", "localhost:8000", "server listen address")
type dumpWriter struct {
c net.Conn
w io.Writer
}
func (w dumpWriter) Write(v []byte) (int, error) {
fmt.Fprintf(w.w, "[%v->%v] ", w.c.RemoteAddr(), w.c.LocalAddr())
return w.w.Write(v)
}
func main() {
flag.Parse()
l, err := net.Listen("tcp", *addr)
if err != nil {
log.Fatal(err)
}
log.Println("Listening on", l.Addr())
for {
c, err := l.Accept()
if err != nil {
log.Println(err)
continue
}
go io.Copy(dumpWriter{c, os.Stdout}, c)
}
}