private int checkBlk(Map<Long, BlockChecksums> srcMap, int offset,
			List<DiffCheckItem> difList) {
		int start = offset;
		BlockChecksums bck = null; // 新老文件相同的块，老文件的
		BlockChecksums blk = null; // 新文件取出的块
		for (; start < updateFile.length(); start++) {
			blk = getNextBlock(start);
			if (srcMap.containsKey(blk.getWeakChecksum())) {
				 bck = srcMap.get(blk.getWeakChecksum());
				if (bck.getHexStrongChecksum().equals(
						blk.getHexStrongChecksum())) {
					break;
				}
			}
		}
		
		if (blk != null) {
//			System.out.println(" same = start： " + start + "**size:**"
//					+ (start - offset) + "**");
			int len = start - offset;
			
			if (len > 0) {
				try {
				if (diffraf == null) {
						diffraf = new RandomAccessFile(updateFile, "r");
				}
				byte[] by = new byte[len];
				diffraf.seek(offset);
				diffraf.read(by, 0, len);
				
					DiffCheckItem dl = new DiffCheckItem();
					dl.setMatch(false);
					dl.setData(by);
					difList.add(dl);
					
				//System.out.println(new String(by));
				} catch (FileNotFoundException e) {
					e.printStackTrace();
				} catch (IOException e) {
					e.printStackTrace();
				}
				
				if(bck != null){
					DiffCheckItem dl = new DiffCheckItem();
					dl.setIndex(bck.getIndex());
					dl.setMatch(true);
					difList.add(dl);
				}
				
				
			}else{
				DiffCheckItem dl = new DiffCheckItem();
				dl.setIndex(bck.getIndex());
				dl.setMatch(true);
				difList.add(dl);
			}
			return start + Rsync4jConstants.BLOCK_SIZE;
		} else {
			System.out.println("the diff block:" + (start - offset));
			return start;
		}
	}