public void cancelPiece(Piece p){
		if(conState != ConnectionState.connected){
			throw new RuntimeException("Can only send requests on 'connected' connections");
		}else if(peer_choking){
			return ;
		}
		try {
			Iterator<Request> itor =ourRequests.iterator();
			while (itor.hasNext()) {
				Request r = itor.next();
				if (r.index == p.pieceIndex) {
					itor.remove();
					maintenance += 17;
					mp.cancel(sockOut, r.index, r.begin, r.len);
				}
			}
		} catch (IOException e) {
			conState = ConnectionState.closed;
		}
	}