Hola, me pasa muy seguido que tengo errores al acceder a objetos declarados en la misma clase.
En este caso, puedo usar el ArrayList desde el
if, pero en el
else if me da error me dice que solo puede ser null
Código:
public static void main(String[] str) throws IOException {
inetAddress = InetAddress.getByName("localhost");
TFTPProtocol tftp = new TFTPProtocol();
// creamos un buffer donde guardar los bytes del datagrampacket
byte[] b = new byte[516];
DatagramSocket socket = new DatagramSocket(5000);
int contador = 1;
while (true) {
DatagramPacket p = new DatagramPacket(b, b.length);
socket.receive(p);
// recibimos un paquete i extraemos datos
byte[] data = p.getData();
ArrayList<DatagramPacket> envioPaquetes = null;
if (tftp.catalogarPaquete(data) == RRQ) {
System.out.println("server: llego un rrq!");
String fileName = tftp.desempaquetarRRQyWRQ(data);
System.out.println("server:" +fileName);
envioPaquetes = new ArrayList<DatagramPacket>(tftp.generarPaquetes(ruta+fileName));
System.out.println("server: enviaremos "+envioPaquetes.size()+" paquetes");
socket.send(envioPaquetes.get(contador));
envioPaquetes.remove(contador);
contador++;
} else if (tftp.catalogarPaquete(data) == WRQ) {
System.out.println("server: llego un wrq!");
String fileName = tftp.desempaquetarRRQyWRQ(data);
System.out.println(fileName);
} else if (tftp.catalogarPaquete(data) == DATA) {
System.out.println("server: llego un data!");
} else if (tftp.catalogarPaquete(data) == ACK_MSG) {
System.out.println("server: llego un ack del Paquete " + contador + "!!!!");
socket.send(envioPaquetes.get(contador));
envioPaquetes.remove(contador);
contador++;
} else {
}
}