Foros del Web » Programación para mayores de 30 ;) » Java »

que leches pasa

Estas en el tema de que leches pasa en el foro de Java en Foros del Web. Hola a todos, tengo el siguiente codigo Código: public class resetcomprueba implements Runnable{ Servidor s; JList jlista=new JList(); resetcomprueba(Servidor sv, JList jlista2) { s=sv; jlista=jlista2; ...
  #1 (permalink)  
Antiguo 18/05/2009, 15:10
 
Fecha de Ingreso: abril-2007
Mensajes: 166
Antigüedad: 17 años, 1 mes
Puntos: 2
que leches pasa

Hola a todos, tengo el siguiente codigo

Código:
public class resetcomprueba implements Runnable{
     
     Servidor s;
     JList jlista=new JList();
    
 
    
   resetcomprueba(Servidor sv, JList jlista2)
   {
        s=sv;
       jlista=jlista2;
   }
          
    public void run() {
        while (true)
        {
         
                 for (int b=0;s.sizeComprueba();b++)
                            s.setComprueba(b, (short)0);
                 
          
                        Thread.sleep(3000);
              
                        for(int a=0;s.sizeComprueba();a++)
                    {
                      s.setComprueba(a,(short)1);

                    }
            }
           jlista.repaint();
        }
    }
Me da error en los 2 for ¿POR QUE ES? lo siento pero soy torpe y no acabo deo comprender por que.

Tengo esta clase tambien, que se llama servidor
Código:
public class Servidor implements Runnable{

    
    public static int puertoServidor=1998;
    public static int puertoCliente=1999;
    public static int tamanoBuffer=4;
    public static DatagramSocket ds;
    public static byte buffer[] = new byte[tamanoBuffer];
    public int tamarrayips=10;
    public short [] compruebaips=new short[tamarrayips];
    public String [] arrayips = new String[tamarrayips];
    public int i=0;
   DefaultListModel modelo;
  
public Servidor(DefaultListModel mod){
    modelo=mod;
}
    

    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;
                              }
                              if(existe==0){
                                  anadirPC(p.getAddress().toString());
                                  setComprueba(i,(short)0);
                              }
                              else
                                  setComprueba(i,(short)0);
                                  
                             
                   
                                                           
                             System.out.println("********SERVIDOR GRAFICO*****");
                             System.out.println("*******************************");
                             System.out.println("Ha llegado una peticion \n");
                             System.out.println("Procedente de :" + p.getAddress());
                             System.out.println("En el puerto :" + p.getPort());
                             System.out.println("Sirviendo la petición");
                             
                             
                          
                   }
          
          
    
    
        }
  
        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 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;
    }
    
}
Pero no logro poner el sizecomprueba ni a 0 ni a 1, por que me da un fallo de boolean.
¿Como lo puedo arreglar?, es en la conversion de tipos, pero ya he probado a captear pero nada. Soy extremadamente torpe con esto.

Gracias de antemano. Si pueden contestar lo antes posible se los agradeceria
  #2 (permalink)  
Antiguo 18/05/2009, 15:43
Avatar de stone_neo  
Fecha de Ingreso: abril-2004
Ubicación: Peru
Mensajes: 438
Antigüedad: 20 años
Puntos: 15
Respuesta: que leches pasa

No sera por que el formato del for es asi

for (int b=0;b<s.sizeComprueba();b++)
__________________
Rubén Darío Huamaní Ucharima
Web : http://www.gorilla-soft.com
Usuario Linux #382 100 :-)
  #3 (permalink)  
Antiguo 18/05/2009, 21:50
Avatar de fradve  
Fecha de Ingreso: abril-2009
Mensajes: 157
Antigüedad: 15 años
Puntos: 7
Respuesta: que leches pasa

Exacto stone_neo. Juny18 al for debes darle una condición no solo un valor, para que este sepa hasta cuando tiene que contar.

Saludos
  #4 (permalink)  
Antiguo 19/05/2009, 11:30
 
Fecha de Ingreso: abril-2007
Mensajes: 166
Antigüedad: 17 años, 1 mes
Puntos: 2
Respuesta: que leches pasa

ostras, que fallo mas tonto, gracias por responder.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:34.