xs/demo/server.go

42 lines
796 B
Go
Raw Normal View History

2018-01-06 15:30:56 +00:00
package main
import (
"fmt"
"io"
"log"
//"net"
hkex "blitter.com/herradurakex"
2018-01-06 15:30:56 +00:00
)
func main() {
// Listen on TCP port 2000 on all available unicast and
// anycast IP addresses of the local system.
l, err := hkex.Listen("tcp", ":2000")
2018-01-06 15:30:56 +00:00
if err != nil {
log.Fatal(err)
}
defer l.Close()
fmt.Println("Serving on port 2000")
for {
// Wait for a connection.
conn, err := l.Accept()
if err != nil {
log.Fatal(err)
}
fmt.Println("Accepted client")
// Handle the connection in a new goroutine.
// The loop then returns to accepting, so that
// multiple connections may be served concurrently.
go func(c hkex.HKExConn) {
2018-01-06 15:30:56 +00:00
// Echo all incoming data.
io.Copy(c, c)
2018-01-06 20:26:08 +00:00
fmt.Println("Client sent:%v\n", c)
2018-01-06 15:30:56 +00:00
// Shut down the connection.
c.Close()
}(conn)
}
}