bTemp = MODE.getBytes();
bTemp = MODE.getBytes("ISO8859_1");
	void readFile(String path) throws IOException {		byte[] bTemp;		buffer[0] = 0;		buffer[OFFSET_REQUEST] = OP_RRQ;		// read request		int p = 2;			// number of chars into buffer		// Convert filename String to bytes in buffer , using "p" as an		// offset indicator to get all the bits of this request		// in exactly the right spot.		bTemp = path.getBytes();		System.arraycopy(bTemp, 0, buffer, p, path.length());		p += path.length();		buffer[p++] = 0;		// null byte terminates string		// Similarly, convert MODE ("octet") to bytes in buffer		bTemp = MODE.getBytes();		System.arraycopy(bTemp, 0, buffer, p, MODE.length());		p += MODE.length();		buffer[p++] = 0;		// null terminate		/* Send Read Request to tftp server */		outp.setLength(p);		sock.send(outp);		/* Loop reading data packets from the server until a short		 * packet arrives; this indicates the end of the file.		 */		int len = 0;		do {			sock.receive(inp);			if (debug)				System.err.println(					"Packet # " + Byte.toString(buffer[OFFSET_PACKETNUM])+					"RESPONSE CODE " + Byte.toString(buffer[OFFSET_REQUEST]));			if (buffer[OFFSET_REQUEST] == OP_ERROR) {				System.err.println("rcat ERROR: " +					new String(buffer, 4, inp.getLength()-4));				return;			}			if (debug)				System.err.println("Got packet of size " +					inp.getLength());			/* Print the data from the packet */			System.out.write(buffer, 4, inp.getLength()-4);			/* Ack the packet. The block number we 			 * want to ack is already in buffer so 			 * we just change the opcode. The ACK is 			 * sent to the port number which the server 			 * just sent the data from, NOT to port 			 * TFTP_PORT.			 */			buffer[OFFSET_REQUEST] = OP_ACK;			outp.setLength(4);			outp.setPort(inp.getPort());			sock.send(outp);		} while (inp.getLength() == PACKET_SIZE);		if (debug)			System.err.println("** ALL DONE** Leaving loop, last size " +				inp.getLength());	}