Golang goroutine和chan 教程04:tcp时间

作者: 我加入简书的路程 | 来源:发表于2019-06-15 12:07 被阅读0次
    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连接到这个服务器上来。

    相关文章

      网友评论

        本文标题:Golang goroutine和chan 教程04:tcp时间

        本文链接:https://www.haomeiwen.com/subject/sofbfctx.html