func readFully(conn net.Conn) ([]byte, error) { nh := rpc.NsHead{} headLen, _ := nh.GetHeaderLen() headBuf := make([]byte, headLen) _, err := io.ReadFull(conn, headBuf) checkError(err) //_, _ := nh.GetLogId(headBuf) bodyLen, err := nh.GetBodyLen(headBuf) checkError(err) bodyBuf := make([]byte, bodyLen) _, err = io.ReadFull(conn, bodyBuf) checkError(err) return bodyBuf, nil }