fix bufio.Reader.Read not read full buffer
use io.ReadFull