package main
import (
"io"
"log"
"net"
"time"
)
func main() {
listenner,err:=net.Listen("tcp","localhost:8000")
if err != nil {
log.Fatal(err)
}
for {
conn,err := listenner.Accept()
if err != nil {
log.Print(err)
continue
}
go handleConn(conn)
}
}
func handleConn(c net.Conn) {
defer c.Close()
for{
_,err:=io.WriteString(c,time.Now().Format("15:04:05\n"))
if err != nil {
return
}
time.Sleep(1*time.Second)
}
}
哈哈哈哈,我仅仅在handleConn前面加了一个go。就实现了并发。这真是太棒了。和之前相比的是,原版的代码只能同时接受一个nc连接,在连接结束之后才能接受另一个。而现在可以并发的接受很多连接了。
end 下次我们要书写一个nc连接到这个服务器上来。
网友评论