使用SetReadDeadline读取具有时间限制的数据:
func (tn *TelnetLib) GetData() { tn.Conn.SetReadDeadline(time.Second) recvdata:= make([]byte, 1024) n, err := tn.Conn.Read(recvData) if n > 0 { // do something with recvData[:n] } if e, ok := err.(interface{ Timeout() bool }); ok && e.Timeout() { // handle timeout } else if err != nil { // handle error }}请注意,单个呼叫读取可能无法读取对等方发送的所有数据。您可能需要通过循环调用Read或io.ReadFull来积累数据。



