Pero me da este error "AWT-EventQueue-0" java.util.NoSuchElementException", dice que no hay elementos, pero si los tiene.
Lo que he hecho a sido esto
desde.setText((String)modelo.lastElement().toStrin g());
hasta.setText(modelo.firstElement().toString());;
Aqui os pongo la clase servidor
Código:
Haber que me decis public class Servidor implements Runnable{ int puertoServidor=1998; int tamanoBuffer=4; DatagramSocket ds; byte buffer[] = new byte[tamanoBuffer]; int tamarrayips=10; short [] compruebaips=new short[tamarrayips]; String [] arrayips = new String[tamarrayips]; int i=0; public int cadencia; JList jlogger = new JList(); DefaultListModel modelo; DefaultListModel modelo2; public Servidor(DefaultListModel mod,DefaultListModel mod2) throws IOException{ modelo=mod; modelo2=mod2; try{ //----------------CODIFICACION ARCHIVOS CONFIGURACION---------- File archivo = null; FileReader fr = null; archivo = new File ("config_server.conf"); fr = new FileReader (archivo); BufferedReader br = new BufferedReader(fr); String linea; ArrayList cadenas = new ArrayList(); while((linea=br.readLine())!=null) { System.out.println(linea); cadenas.add(linea); } puertoServidor= Integer.parseInt((String) cadenas.get(0)); cadencia= Integer.parseInt((String) cadenas.get(1)); if( fr != null) fr.close(); } catch(FileNotFoundException ex6) { try { FileWriter fichero = new FileWriter("config_server.conf"); PrintWriter pw = new PrintWriter(fichero); pw.println("El fichero no existía"); pw.close(); } catch (Exception c) { c.printStackTrace(); } } } public void run() { try { ds = new DatagramSocket(puertoServidor); DatagramPacket p = new DatagramPacket(buffer, buffer.length); while(true) { ds.receive(p);//recibe el paquete int existe=0; for(int i=0;i<modelo.getSize();i++){ if(modelo.elementAt(i).equals(p.getAddress().toString())){ existe=1; setComprueba(i,(short)0); } } if(existe==0){ anadirPC(p.getAddress().toString()); //setComprueba(i,(short)0); } log(p,buffer); } } catch(SocketException e) { System.out.println("Se ha producido error en el socket"); } catch (UnknownHostException e) { System.out.println("Error host desconocido"); } catch(IOException e){ System.out.println("Error en la I/O"); } } public void log(DatagramPacket paquete,byte buf[]) { modelo2.addElement("--------SIRVIENDO PETICION--------"); modelo2.addElement("CLIENTE: "+paquete.getAddress().toString()); modelo2.addElement("PUERTO: "+paquete.getPort()); modelo2.addElement("SERVIDOR: "+paquete.getSocketAddress().toString()); modelo2.addElement("---------CONTENIDO DEL PAQUETE---------"); for(int ac=0;ac<buf.length;ac++) { modelo2.addElement(buf[ac]); } } public void anadirPC(String ip){ modelo.addElement(ip); arrayips[i]=ip; setComprueba(i,(short)0); i++; if(i >= tamarrayips){ //doblar el tamaño de los arrays tamarrayips*=2; String aux[]=new String[tamarrayips]; short aux2[]=new short[tamarrayips]; for(int i=0;i<arrayips.length;i++){ aux[i]=arrayips[i]; aux2[i]=compruebaips[i]; } arrayips=aux; compruebaips=aux2; } } public synchronized void setComprueba(int elem,short valor){ compruebaips[elem]=valor; } public short getComprueba(int elem){ return compruebaips[elem]; } public int sizeComprueba(){ return i; } }