Skip to content

Instantly share code, notes, and snippets.

@dojiong
Created January 23, 2013 03:13
Show Gist options
  • Save dojiong/4601558 to your computer and use it in GitHub Desktop.
Save dojiong/4601558 to your computer and use it in GitHub Desktop.
package main
import (
"flag"
"log"
"net"
)
var bind = flag.String("bind", "127.0.0.1:6666", "ip:port to bind")
func echo(conn net.Conn) {
buf := make([]byte, 1024)
for {
if n, err := conn.Read(buf); err != nil || n <= 0 {
break
} else {
if n, err = conn.Write(buf[:n]); err != nil || n <= 0 {
break
}
}
}
}
func accept_loop(l net.Listener) {
for {
if conn, err := l.Accept(); err != nil {
log.Fatal(err)
} else {
go echo(conn)
}
}
}
func main() {
flag.Parse()
if l, err := net.Listen("tcp", *bind); err != nil {
log.Fatal(err)
} else {
accept_loop(l)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment