ここでインデックスの範囲外の例外が発生する理由を誰かが理解できますか? データの最初のロットを読み取ることができますが、これを再度ループしようとするとエラーになります。is.read(readBytes, offset, length); で「割り当てられた値は使用されません」というエラーも表示されます。これも一部。
InetAddress address = packet.getAddress();
int port = packet.getPort();
RRQ RRQ = new RRQ();
int offset = 0;
int length = 512;
int block = 0;
byte[] readBytes = new byte[512];
File file = new File(filename);
FileInputStream is = new FileInputStream(file);
int fileBytes = is.read(readBytes, offset, length);
DatagramPacket outPacket = RRQ.doRRQ(readBytes, block, address, port);
socket.send(outPacket);
block++;
if (fileBytes != -1)
{
socket.receive(packet);
offset = offset + fileBytes;
System.out.println(offset);
Exceptions here:fileBytes = is.read(readBytes, offset, length);
outPacket = RRQ.doRRQ(readBytes, block, address, port);
socket.send(outPacket);
block++;
}