gotoutine撤销问题

Hubery · 2013-03-20 09:16:02 · 4298 次点击

case data := &lt;-upper: 要改成: case data := <- upper:

#2
更多评论
polaris
社区,需要你我一同完善!

要注意 SetReadDeadline()的用法:

func handlerUpper(conn net.Conn) {
    defer recovery()
    defer conn.Close()

    var buff [256]byte
    for {
            select {
            case data := <-upper:
                    n, err := conn.Write(data[0:len(data)])
                    checkPanic(err)
                    fmt.Printf("upper writer:% X", data[0:n])
            default:
                    conn.SetReadDeadline(time.Now().Add(time.Millisecond * 50))
                    n, err := conn.Read(buff[0:])
                    if err == nil {
                            //fmt.Printf("upper reader:% X", buff[0:n])
                            go ParseUpper(buff[0:n])
                    } else {
                            //fmt.Println("timeOut")
                    }
            }
    }
}
#1

conn.SetReadDeadline(time.Now().Add(time.Millisecond * 50)) 这个时间长度怎么设置好?

#3