public void registerForReads(DataListener listener) {
		if(listener == null)
			throw new IllegalArgumentException(this+"listener cannot be null");
		else if(!isConnecting && !isConnected()) {
			throw new IllegalStateException(this+"Must call one of the connect methods first(ie. connect THEN register for reads)");
		}

		if(apiLog.isLoggable(Level.FINE))
			apiLog.fine(this+"Basic.registerForReads called");
		
        try {
			getSelectorManager().registerChannelForRead(this, listener);
		} catch (IOException e) {
			throw new NioException(e);
		} catch (InterruptedException e) {
			throw new NioException(e);
		}
	}