我buffio.Writer在 GoLang 中使用如下。
conn, err := net.Dial("tcp", address) // address is of form ip:port
w := bufio.NewWriter(conn)
w.WriteByte(code) // code is a byte
w.Write(data) // data is a byte buffer
w.Flush()
我试图修改上面的代码,使write()事件有一个截止日期:当截止日期过去时,write()无论成功与否,事件都会返回。
在 GoLang 中,如果conn(连接对象)直接用于使用conn.SetWriteDeadline(time.Now().Add(n * time.Second)). 但是,当我使用bufifo.writer对象时,它本质上是conn缓冲 IO 的包装器,没有 API 来设置截止日期。
虽然它可以使用conn.SetWriteDeadline(time.Now().Add(n * time.Second))和使用conn.Write(b),但它非常低效,因为它不缓冲write事件(因此有很多上下文切换)
在 GoLang 中有没有一种方法可以将缓冲 IO 与writeDeadline()?
慕的地10843