elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


  Mostrar Mensajes
Páginas: 1 [2] 3 4 5
11  Programación / Java / Re: Aplicación con sockets no funciona en LAN (sólo con localhost) en: 18 Noviembre 2013, 20:59 pm
Vaya, qué extraño... Probaré lo de la configuración de redes de Windows, a ver. He estado alternando con Windows y Ubuntu por si el problema era de alguno de éstos, pero miraré lo que me has dicho.

Muchas gracias por tu ayuda!!
12  Programación / Java / Re: Aplicación con sockets no funciona en LAN (sólo con localhost) en: 18 Noviembre 2013, 19:38 pm
La excepción me salta en el Cliente.

Ya consigo hacer el Telnet desde un ordenador distinto, que es un paso :D La cosa es por qué no funciona desde el propio programa del servidor, ¿cuál es el problema?

Muchísimas gracias por tu atención.
13  Programación / Java / Re: Aplicación con sockets no funciona en LAN (sólo con localhost) en: 18 Noviembre 2013, 19:12 pm
Bastante extraño, y exactamente en donde te lanza esa excepción?

Te recomiendo, que te uses Telnet (si usas Windows no viene instalado por defecto debes agregarlo o si usas linux ya viene integrado).
Primero abres el servidor y luego con Telnet, en una maquina ajena donde está el servidor, intentas conectarte. Si esto no funciona es probable  que Java esté siendo bloqueado por algún firewall y que esté causándote problemas.

Bueno has esa prueba y nos cuentas!

Gracias por responder. No pone la línea en la que se lanza la excepción.

Usando Telnet estoy igual, sólo no establece la conexión ni en la maquina ajena del servidor ni en la propia. Me dice lo siguiente:
Código:
Microsoft Telnet> open 5000
Conectándose a 5000...No se puede abrir la conexión al host, en puerto 23: Error
 en la conexión

He desactivado tanto el firewall como el antivirus. Ni idea de qué puede tratarse...

Gracias y un saludo.
14  Programación / Java / Aplicación con sockets no funciona en LAN (sólo con localhost) en: 18 Noviembre 2013, 10:26 am
Estoy creando una aplicación cliente-servidor lo más sencilla posible (para luego implementar más cosas), pero estoy teniendo problemas para ejecutarlo en la LAN de mi casa (ya entonces de WAN ni de hablamos, el cual es mi propósito...). Sólo funciona cuando tanto el servidor como el cliente son el mismo localhost, si no, me salta la siguiente excepción:
Código:
java.net.ConnectException: Connection refused: connect

Os dejo los fuentes. Cliente:
Código
  1. import java.io.DataInputStream;
  2. import java.io.InputStream;
  3. import java.net.InetAddress;
  4. import java.net.Socket;
  5. import java.net.UnknownHostException;
  6.  
  7.  
  8. public class Cliente {
  9. //Constantes
  10. final int PUERTO = 7000;
  11. //final String HOST = "192.168.1.36";
  12.  
  13. /************/
  14.  
  15. //Métodos - constructor
  16. public Cliente(){
  17.  
  18. try{
  19. InetAddress address = InetAddress.getLocalHost();
  20. Socket skCliente;
  21.  
  22. skCliente = new Socket(address, PUERTO);
  23. InputStream aux = skCliente.getInputStream();
  24. DataInputStream flujo = new DataInputStream(aux);
  25. System.out.println(flujo.readUTF());
  26. skCliente.close();
  27.  
  28. System.out.println( e );
  29.    System.out.println("Error en la conexión." );
  30.  
  31. } catch (Exception e) {
  32. System.out.println(e);
  33.  
  34. }
  35. }
  36.  
  37. //Cuerpo del programa
  38. public static void main(String[] args){
  39. new Cliente();
  40.  
  41.  
  42. }
  43.  
  44. }
  45.  

Servidor:
Código
  1. import java.io.DataOutputStream;
  2. import java.io.OutputStream;
  3. import java.net.ServerSocket;
  4. import java.net.Socket;
  5. import java.net.UnknownHostException;
  6.  
  7.  
  8. public class Servidor {
  9. //Constantes
  10. final int MAX_CLIENTES = 5;
  11. final int PUERTO = 7000;
  12. /************/
  13.  
  14. //Métodos - constructor
  15. public Servidor(){
  16. ServerSocket skServidor;
  17. try {
  18. skServidor = new ServerSocket(PUERTO);
  19. System.out.println("Escucho el puerto: "+PUERTO);
  20. for(int numCli = 0; numCli < MAX_CLIENTES; numCli++){
  21. Socket skCliente = skServidor.accept();
  22. System.out.println("\tSirvo al cliente: "+skCliente.getRemoteSocketAddress());
  23. OutputStream aux = skCliente.getOutputStream();
  24. flujo.writeUTF("\nHola cliente "+ skCliente.getRemoteSocketAddress());
  25. skCliente.close();
  26. }
  27.  
  28. System.out.println( e );
  29.    System.out.println("Error en la conexión." );
  30.  
  31. }
  32.    catch (Exception e) {
  33. // TODO Auto-generated catch block
  34. System.out.println(e);
  35. }
  36. }
  37.  
  38. public static void main(String[] args){
  39. new Servidor();
  40. }
  41. }
  42.  

Gracias de antemano y saludos.
15  Programación / Java / Re: Dibujar con Graphics encima de un panel con una imagen de fondo en: 14 Noviembre 2013, 21:29 pm
Vale, ya está, tenía que colocar la imagen en la carpeta bin con los .class, aunque hasta ahora la he puesto en la carpeta del proyecto...

Muchísimas gracias otra vez.
16  Programación / Java / Re: Dibujar con Graphics encima de un panel con una imagen de fondo en: 14 Noviembre 2013, 20:32 pm
Copio y pego el código y me sale el siguiente error de compilación:

Código:
Exception in thread "main" java.lang.IllegalArgumentException: input == null!
at javax.imageio.ImageIO.read(ImageIO.java:1348)
at ImageJPanel$PanelOverDraw.<init>(ImageJPanel.java:40)
at ImageJPanel.<init>(ImageJPanel.java:25)
at ImageJPanel.main(ImageJPanel.java:19)

La línea del error es la 24.

Código
  1. this.add(new PanelOverDraw());

¿A qué se puede deber? Gracias por tu paciencia y un saludo.
17  Programación / Java / Re: Dibujar con Graphics encima de un panel con una imagen de fondo en: 13 Noviembre 2013, 09:04 am
Hago uso de BufferedImage y de ImageIO para almacenar la imagen en un buffer y leer la imagen original respectivamente.



Código
  1. import java.awt.Color;
  2. import java.awt.Dimension;
  3. import java.awt.Graphics;
  4. import java.awt.Graphics2D;
  5. import java.awt.image.BufferedImage;
  6. import java.io.File;
  7. import java.io.IOException;
  8.  
  9. import javax.imageio.ImageIO;
  10. import javax.swing.JFrame;
  11. import javax.swing.JPanel;
  12.  
  13. @SuppressWarnings("serial")
  14. public class ImageJPanel extends JFrame {
  15.  
  16.  
  17. public static void main(String... args) {
  18. new ImageJPanel();
  19. }
  20.  
  21. public ImageJPanel() {
  22. super("Dibujo sobre imagen");
  23.  
  24. this.add(new PanelOverDraw());
  25. this.setSize(484,519);
  26. this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
  27. this.setVisible(true);
  28. }
  29.  
  30. public class PanelOverDraw extends JPanel {
  31.  
  32.  
  33. private BufferedImage img = null;
  34.  
  35. public PanelOverDraw() {
  36.  
  37. File imageFile = new File("background.jpg"); // guarda la imagen en un archivo
  38. try {
  39. img = ImageIO.read(getClass().getResourceAsStream(imageFile.toString())); // la carga en una BufferedReader
  40. } catch (IOException e) {
  41. e.printStackTrace();
  42. }
  43.  
  44. this.setPreferredSize(new Dimension(484,409));
  45.  
  46. // creamos una instancia graphics desde la imagen para pintar sobre ella
  47. Graphics2D pint = img.createGraphics();
  48.        pint.setColor(Color.GREEN);
  49.        pint.fillRect(200,200,100,100);
  50.        pint.dispose();
  51.  
  52. }
  53.  
  54. @Override
  55. public void paintComponent(Graphics g)
  56. {
  57. super.paintComponent(g);
  58. g.drawImage(img,0,0,null); // dibuja la imagen al iniciar la aplicacion
  59. }
  60.  
  61. }
  62. }
  63.  

Muchísimas gracias, no sabes cuánto me has ayudado. Gracias.
18  Programación / Java / Re: Dibujar con Graphics encima de un panel con una imagen de fondo en: 13 Noviembre 2013, 00:23 am
Éste es uno de tantos intentos. No está muy limpio; lo he hecho con algo de prisa. Lo dicho arriba, no sé como poner un panel de fondo y luego ver los Graphics encima de éste.

El código:
Código
  1. import java.awt.Color;
  2. import java.awt.Container;
  3. import java.awt.Dimension;
  4. import java.awt.Graphics;
  5.  
  6. import javax.swing.ImageIcon;
  7. import javax.swing.JComponent;
  8. import javax.swing.JFrame;
  9. import javax.swing.JLabel;
  10. import javax.swing.JPanel;
  11.  
  12. public class Demo1 extends JComponent {
  13.  
  14.  
  15.    private final static int ANCHO = 512;
  16.  
  17.    private final static int ALTO = 384;
  18.  
  19.    private final static int DIAMETRO = 20;
  20.  
  21.    private float x, y;
  22.  
  23.    private float vx, vy;
  24.  
  25.    public Demo1() {
  26.        setPreferredSize(new Dimension(ANCHO, ALTO));
  27.        x = 10;
  28.        y = 20;
  29.        vx = 300;
  30.        vy = 400;
  31.    }
  32.  
  33.    private void fisica(float dt) {
  34.        x += vx * dt;
  35.        y += vy * dt;
  36.        if (vx < 0 && x <= 0 || vx > 0 && x + DIAMETRO >= ANCHO)
  37.            vx = -vx;
  38.        if (vy < 0 && y < 0 || vy > 0 && y + DIAMETRO >= ALTO)
  39.            vy = -vy;
  40.    }
  41.  
  42.    public void paint(Graphics g) {
  43.  
  44.        g.setColor(Color.WHITE);
  45.        g.fillRect(0, 0, ANCHO, ALTO);
  46.        g.setColor(Color.RED);
  47.        g.fillOval(Math.round(x), Math.round(y), DIAMETRO, DIAMETRO);
  48.    }
  49.  
  50.    private void dibuja() throws Exception {
  51.     this.repaint();
  52.    }
  53.  
  54.    public void cicloPrincipalJuego() throws Exception {
  55.        float dt = 0.01f;
  56.        while (true) {
  57.         Thread.sleep(10);
  58.         fisica(dt);
  59.            dibuja();
  60.        }
  61.    }
  62.  
  63.    public static void main(String[] args) throws Exception {
  64.     JFrame jf = new JFrame("Demo1");
  65.        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  66.        jf.setResizable(false);
  67.  
  68.        Demo1 demo1 = new Demo1();
  69.        jf.setContentPane(crearPanel());
  70.        jf.pack();
  71.        jf.setVisible(true);
  72.        demo1.cicloPrincipalJuego();
  73.    }
  74.  
  75. private static Container crearPanel() {
  76. JPanel panel = new JPanel();
  77. JLabel label = new JLabel();
  78.  
  79. label.setIcon(new ImageIcon("img.jpg"));
  80. panel.add(label);
  81.  
  82. return panel;
  83. }
  84. }

Muchas gracias por vuestra paciencia y saludos.
19  Programación / Java / Dibujar con Graphics encima de un panel con una imagen de fondo en: 12 Noviembre 2013, 19:57 pm
Buenas, estoy con algo que me lleva trayendo de cabeza desde hace bastante. Mi pregunta es ésa, ¿cómo puedo poner una imagen de fondo, y luego superponer figuras con Graphics? Lo he intentado de mil maneras, a veces no me hace caso, y otras da error en tiempo de ejecución, y no sabría ni qué código poner aquí. He conseguido poner otros componentes como JLabels o JButtons, pero con Graphics no puedo.

Gracias de antemano y saludos.
20  Programación / Java / [Duda]Conectarse a "base de datos" en ordenador remoto en: 9 Noviembre 2013, 23:45 pm
Hola buenas, os expongo mi problema.

Estoy haciendo un clon del Arkanoid y me gustaría añadirle un sistema de puntuaciones, para hacerlo más atractivo y rejugable. Mi idea es la siguiente: cada partida tendrá asociada un nombre (el que usuario escoja), y éste se guardará, junto con los puntos conseguidos, en un fichero que se guardará en un "servidor". Cuando en el menú del juego se seleccionara la opción de mostrar las puntuaciones, pues se mostraría la información almacenada en el fichero.

Y claro, se supone cualquier ordenador desde el cual se estuviera ejecutando el juego puede ver las puntuaciones del fichero. Antes que nada aclarar que mis conocimientos sobre sockets (en cualquier lenguaje de programación) son nulos. Dicho ésto, mi pregunta es, ¿puede ser viable? No os estoy pidiendo cuál sería el código ni nada por el estilo, evidentemente, sino cuáles serían las directrices a seguir para mi propósito.

Creo que no me dejo nada en el tintero. Muchas gracias de antemano (sobretodo por vuestra paciencia).
Páginas: 1 [2] 3 4 5
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines