elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
12 Octubre 2008, 11:29  



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

Desconectado Desconectado

Mensajes: 10


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

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: 123


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


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

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 Imprimir 
Ir a:  







Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

hard-h2o modding    Foros de ayuda    Yashira.org    Videojuegos    indetectables.net   

Noticias Informatica    Seguridad Informática    ADSL    Foros en español    eNYe Sec

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.6 | SMF © 2006-2008, Simple Machines LLC
Free counter and web stats