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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  sockets bloqueados + java
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: sockets bloqueados + java  (Leído 6,921 veces)
Ctesias

Desconectado Desconectado

Mensajes: 10


Ver Perfil
sockets bloqueados + java
« en: 3 Abril 2005, 23:21 pm »

Alguien me podria guiar para encontrar informacion de sockets bloqueados , que son,etc...para java
 y en espanyol .utilizo el netbeans de windows
He buscado en google y no encuetro nada que me sirva


En línea

AnKeR

Desconectado Desconectado

Mensajes: 125


printk("\n%s\n","Kernel Panic");


Ver Perfil
Re: sockets bloqueados + java
« Respuesta #1 en: 5 Abril 2005, 03:57 am »

Buenas:


El tema de los sockets bloqueados o sockets que se bloquean bajo alguna circunstancia es una cosa curiosa :P

Se trata de sockets que bajo una condicion se bloquean (osease el hilo en el que están se suspende hasta que se pase esa condición), vale, y cuales son esas condiciones???? Pues las hay de varios tipos: en C: existen los sockets de escritura bloqueante, mientras el otro extremo del socket, escribe, i porceso se encuentra bloqueado para no encontrar nada anómalo (esto se encuentra en los flags de definición del socket)... creo que tb hay algún otro tipo (asi de memoria no recuerdo :P). En VB.NET existen sockets sincronos y asincronos:  sockets que se bloquean hasta que han recibido toda la información (síncronos), y sockets que no se bloquean y tenemos q ver si nuestro buffer se ha llenado ;) (asincronos).
En java los sockets por naturaleza son NO BLOQUEANTES pero  con una caracteristica curiosa, que como se utilizan con otras cosillas si que se vuelven bloqueantes ;) --ahora me explico--

Código:
try{

      Socket s = new Socket("mihost.es",25);      //Creamos el socket :D
      BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream())); //Creamos un BufferedReader para leer OJO!!!! FIJAOS LO Q USAMOS
      DataOutputStream dos = new DataOutputStream(s.getOutputStream()); //Un DataOutputStream para leer :P

      dos.writeBytes("Hola\r\n");   //Escribimos al dataoutput sin mais :P
      System.out.println(br.readLine());  //Y leemos con el buffered reader

      dos.writeBytes("QUIT\r\n");

      br.close();     //cerramos y tal
      dos.close();
      s.close();

    }catch(IOException ioe){

      System.err.println("Error: " + ioe);

    }
 

Vale, ahora vemos q leemos con un Buffered reader, pues ahora resulta que el Buffered reader si que es bloqueante se trata de un elemnto sincronizado... por lo tanto lo que antes teniamos como un socket no bloqueante al utilizar un BufferedReader, pos si que es bloqueante... por ejemplo el codigo q he puesto, el programa estará prarado en br.readline() hasta que el otro extremo del socket escriba un salto de linea.

Espero q esto te sirva de algo :P
El IDE que utilices realmente no tiene nada q ver porque son especificaciones del lenguaje ;)

Salu2o3


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,355 Último mensaje 23 Octubre 2012, 15:50 pm
por cruz_lazcano
Sockets en Java
Java
mapers 3 4,181 Último mensaje 11 Julio 2011, 10:22 am
por Debci
Ayuda con Sockets en java
Java
juancaa 1 1,890 Último mensaje 28 Agosto 2012, 03:35 am
por xmbeat
Duda con sockets en java
Java
fekaa30 1 2,513 Último mensaje 8 Octubre 2012, 21:31 pm
por Proteus1989
CHMs e HTMLs bloqueados.
Dudas Generales
romerriera 1 1,830 Último mensaje 12 Agosto 2014, 15:23 pm
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines