public int read(byte[] b, int off, int len, int delim) throws IOException, DelimiterNotFoundException {
		int bytesRead = -1;
		if(!connected)
			return bytesRead;
		try {
			bytesRead = super.read(b, off, len, delim);
		}
		catch(IOException e) {
			// skip to next
		}
		if(bytesRead == -1) {
			try {
				connected = false;
				connect();
			}
			catch(ConnectionException e) {
				return bytesRead;
			}
			return read(b, off, len, delim);
		}
		idle = false;
		return bytesRead;
	}