Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/04/2009, 06:32
MIRL27
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Arrays y servidor udp

Tu servidor lo trabajas en tu main, que es estático, por tanto no puedes hacer referencias a atributos no estáticos sin crearte el objeto necesario (de tipo Servidor, en este caso) Digamos que un método estático es "independiente" de la clase en la que se encuentra.

También puedes declarar los atributos estáticos, de forma que puedes usarlos sin crearte un objeto de esa clase. Aquí te dejo el código que pusiste modificado de las dos formas (una de ellas comentada), y compila perfectamente de ambas formas:

Código:
public class Servidor {

    public static int puertoServidor=998;
    public static int puertoCliente=999;
    public static int tamanoBuffer=4;
    public static DatagramSocket ds;
    public static byte buffer[] = new byte[tamanoBuffer];
    public static String [] arrayips;
    public static short [] compruebaips;
    public static int i=0;
    /*	public String [] arrayips;
     *	public short [] compruebaips;
     *	public int i=0;
     */
    
    
public static void main(String[] args) 
{
    
    //-----------------------SERVIDOR------------------------
	//Servidor s = new Servidor();
    try {       
           ds = new DatagramSocket(puertoServidor);
           System.out.println("Servidor Activo");
           
               DatagramPacket p = new DatagramPacket(buffer, buffer.length);             
           
               while(true)
           
                   {          ds.receive(p);//recibe el paquete
                             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");
                            
                             arrayips[i]=p.getAddress().toString();   
                             i++;
                             /*	s.arrayips[s.i]=p.getAddress().toString();   
                              *	s.i++; 
                              */
                              //aqui me imagino que iria tambien el otro array (el array de short
                 }
       
           
        }
  
        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");
        }
}
}