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

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  [AYUDA] Escuchador para programa con Socker
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [AYUDA] Escuchador para programa con Socker  (Leído 3,986 veces)
Xephiro

Desconectado Desconectado

Mensajes: 239



Ver Perfil WWW
[AYUDA] Escuchador para programa con Socker
« en: 8 Octubre 2008, 18:40 pm »

Hola, quisiera saber como se puede hacer un Escuchador o Listener para un programa en java que resive datos por medio de un sochet, usando hebras cree lo siguiente


Metodo run:


Código:
public void run(){
   
    while(socket.isConnected()){

    try{
   
    ObjectInputStream buffer = new ObjectInputStream (socket.getInputStream());
    SocketData dato = (SocketData) buffer.readObject();
   
    System.out.println(dato);
   
    }catch (Exception e){
   
    e.printStackTrace();
   
    }
   
    }


Pero, pasa que al estar conectado y no recivir datos, el programa arroja errores...

Existe alguna forma de que solo actue cuando detecte que se esta enviando algun dato ¿?


En línea

Casidiablo
Desarrollador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.919



Ver Perfil WWW
Re: [AYUDA] Escuchador para programa con Socker
« Respuesta #1 en: 8 Octubre 2008, 19:29 pm »

Qué error te aparece? Puede ser porque estás imprimiendo los datos sin ni siquiera verificar si en realidad existen. Además te recomiendo que envíes y recibas objetos específicos, por ejemplo una cadena String. Tienes un ejemplo sencillo aquí:

http://casidiablo.net/java-socket-chat-basico/

Un saludo!


En línea

Xephiro

Desconectado Desconectado

Mensajes: 239



Ver Perfil WWW
Re: [AYUDA] Escuchador para programa con Socker
« Respuesta #2 en: 8 Octubre 2008, 19:50 pm »

mmm el ejemplo ya habia visto algo parecido antes, pero pasa que esos ejemplo

Conectan reciven un dato sabiendo que se esta enviando algo del cliente, luego cierran la conexion


lo que yo quiero es mientras se hacen otras operaciones, el servidor este constantemente escuchando si llega algo, pero el problema que si lo hago tal como puse el metodo de arriba, como el cliente no envia nada el server trata de pescar algo que no existe y se cae.


El error es el siguiente:
Código:
java.net.SocketException: Connection reset
    at java.net.SocketInputStream.read(SocketInputStream.java:168)
    at java.io.ObjectInputStream$PeekInputStream.read(ObjectInputStream.java:2266)
    at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2279)
    at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2750)
    at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:780)
    at java.io.ObjectInputStream.<init>(ObjectInputStream.java:280)
    at NetConect.Listener.run(Listener.java:22)


En línea

juancho77


Desconectado Desconectado

Mensajes: 455


rie con demencia


Ver Perfil
Re: [AYUDA] Escuchador para programa con Socker
« Respuesta #3 en: 9 Octubre 2008, 01:52 am »

Me suena a que se debe a que cuando lee no identifica el objeto que estas leyendo. El objeto socket lee del buffer de entrada solo cuando hay algo que leer. Es como un BufferedReader tradicional de consola: se quedare esperando hasta que ingreses algo, y luego si ingresas un dato no valido y no lo puedo castear, entonces arroja error. Esto es igual.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines