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

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Ayuda con Sockets en java
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con Sockets en java  (Leído 1,882 veces)
juancaa

Desconectado Desconectado

Mensajes: 140


[ Img^(Img) = Real ]


Ver Perfil
Ayuda con Sockets en java
« en: 20 Agosto 2012, 04:48 am »

Pues veran, estoy desarrolando una apliacion que se maneja con scokets para comunicarse con servidores y clientes utilizando los metodos DataOutputStream y DataInputStream. Bien, el caso es que estoy teniendo algunos problemillas pues no estoy muy familiarizado con los sockets, me gustaria saber que pasa y como debo reaccionar cuando un cliente no responde al servidor, poniendo el siguiente codigo de ejemplo:

Código
  1.    public class checkConnections extends Thread {        
  2.        public void run () {    
  3.            try {
  4.                DefaultTableModel t = (DefaultTableModel) jTable1.getModel();
  5.                User u = null;  
  6.                System.out.println("Checking connections...");
  7.                for (int i=0; i<users.size(); i++) {
  8.                    u = getUserAtRow(i);
  9.                    DataOutputStream dos = new DataOutputStream(u.getConnection().getOutputStream());
  10.                    dos.writeUTF("answer");
  11.                    String answer = dis.readUTF();
  12.                    if (!answer.equals("hi")) {
  13.                        users.remove(u);
  14.                        t.removeRow(i);
  15.                    }
  16.                }
  17.            }catch (IOException ex) { System.out.println("no answer"); }
  18.        }        
  19.    }

Para informarles, no esta de mas decir que los servidores conectados se encuentran en una tabla que gestiona el cliente, asi que va revisando que todos los servidores respondan.

Tal y como he dicho antes, este codigo pide a todos los servidores conectados que respondan mediante la instruccion answer. En el caso en que dicho servidor no este conectado por diversos motivos (fallo en la conexion, etc...), la llamada al metodo : dos.readUTF(); me devuelve un nullpointerexception que no se como gestionar, alguna idea?


En línea

Que tengas un buen dia!
xmbeat

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Ayuda con Sockets en java
« Respuesta #1 en: 28 Agosto 2012, 03:35 am »

La variable "dis" debe ser obtenida de manera análoga a la variable "dos", y después hacer el readUTF(), ademas si es null el resultado de esta llamada debes hacer antes una comparacion
String answer = dis.readUTF();
 if (answer == null || !answer.equals("hi")) { ...


« Última modificación: 28 Agosto 2012, 21:08 pm por xmbeat » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayuda con sockets en java
Java
vincentlaw 1 4,341 Último mensaje 23 Octubre 2012, 15:50 pm
por cruz_lazcano
Sockets en Java
Java
mapers 3 4,161 Último mensaje 11 Julio 2011, 10:22 am
por Debci
Duda con sockets en java
Java
fekaa30 1 2,500 Último mensaje 8 Octubre 2012, 21:31 pm
por Proteus1989
Ayuda con mi codigo. (Enviar buffer de imagen de c++ a java)(SOCKETS)
Java
70N1 0 1,656 Último mensaje 18 Diciembre 2015, 16:59 pm
por 70N1
Ayuda con Sockets PHP y Java [RESUELTO]
PHP
LaThortilla (Effort) 1 2,911 Último mensaje 7 Mayo 2017, 01:44 am
por LaThortilla (Effort)
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines