Foros del Web » Programación para mayores de 30 ;) » Java »

Hacer un BroadCast

Estas en el tema de Hacer un BroadCast en el foro de Java en Foros del Web. Hola, necesitaria saber si alguien conoce como hacer para enviar un broadcast a una serie de maquinas a un puerto determinado, bueno en realidad es ...
  #1 (permalink)  
Antiguo 24/03/2006, 13:59
Avatar de Miguel_e  
Fecha de Ingreso: junio-2004
Ubicación: Cuba
Mensajes: 108
Antigüedad: 20 años
Puntos: 0
Hacer un BroadCast

Hola, necesitaria saber si alguien conoce como hacer para enviar un broadcast a una serie de maquinas a un puerto determinado, bueno en realidad es a todas las maquinas de la red si alguien conoce un ejmplo que me pude ayudar se lo agredecere

salu2
miguel_e
  #2 (permalink)  
Antiguo 24/03/2006, 14:19
 
Fecha de Ingreso: junio-2005
Mensajes: 286
Antigüedad: 19 años
Puntos: 2
en IP, le puedes dar un broadcast hacia 255.255.255.255; el broadcast no va a ser reenviado cuando encuentre un router

Si no, tienes que ver la direccion de tu red (basicamente debes sabes la mascara de red) y mandar tu broadcast.
Ejemplo:
Mi IP: 172.16.12.3
Mi mascara 255.255.0.0
Broadcast: 172.16.255.255.

Este broadcast se va para todas las subredes en tu red tambien.
  #3 (permalink)  
Antiguo 26/03/2006, 14:46
Avatar de dogduck  
Fecha de Ingreso: enero-2006
Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 18 años, 5 meses
Puntos: 19
Los broadcast se envian usando puertos UDP . Es decir para enviar un broadcast ( difusión ) al puerto 138 de la red 172.16.12.0/16 , debes de abrir un socket udp en la dirección de red de broadcast 172.16.255.255
Código:
try
            {
                    byte[] paqueteBytes = null;
                    DatagramPacket paqueteUDP = null;

                    InetAddress direccion = InetAddress.getByName("172.16.255.255");
                    DatagramSocket socketUDP = new DatagramSocket();
                    paqueteBytes = cadena.getBytes();
//cadena es un string
                    paqueteUDP = new DatagramPacket(paqueteBytes,paqueteBytes.length,direccion,138);
                        socketUDP.send(paqueteUDP);
                        socketUDP.disconnect();
                        socketUDP.close() ;
                }
            catch (Exception e)
            {
                        System.out.println(e) ;
            }//try
http://club.idecnet.com/~ccastano/femepa/121205.htm
  #4 (permalink)  
Antiguo 27/03/2006, 06:32
Avatar de Miguel_e  
Fecha de Ingreso: junio-2004
Ubicación: Cuba
Mensajes: 108
Antigüedad: 20 años
Puntos: 0
ok, Muchas gracias

salu2
miguel_e
  #5 (permalink)  
Antiguo 27/03/2006, 07:48
Avatar de Miguel_e  
Fecha de Ingreso: junio-2004
Ubicación: Cuba
Mensajes: 108
Antigüedad: 20 años
Puntos: 0
disculpen mi ignorancia pero porque puede ser que cada vez que trato de crear un objeto de algunas de las clases de java.net.* me da un error, por ejemplo si trato de crear un objeto de tipo DatagramSocket me dice Unhandled exception type SocketException, si trato de crear InetAddress me dice Unhandled exception type UnknownHostException la verdad estaba siguiendo el ejemplo de dogduck y me pasa este error¿¿¿¿??????????? que puede ser??????

salu2
miguel_e
  #6 (permalink)  
Antiguo 27/03/2006, 11:10
 
Fecha de Ingreso: junio-2005
Mensajes: 286
Antigüedad: 19 años
Puntos: 2
UnknownHost: no encuentra la maquina a la que te quieres conectar. Revisa el IP o el nombre.

Si se esta quejando con el Socket, talvez el puerto esta siendo usado por otra aplicacion.
  #7 (permalink)  
Antiguo 27/03/2006, 11:39
Avatar de Miguel_e  
Fecha de Ingreso: junio-2004
Ubicación: Cuba
Mensajes: 108
Antigüedad: 20 años
Puntos: 0
Yo pongo esto solamente dentro de un metodo de una clase

Código:
      InetAddress direccion = InetAddress.getByName("192.192.255.255");
      DatagramSocket a = new DatagramSocket();
y el eclipse me los señala con el subrayado rojo de error, como si fuera un error de sentencia, o sea no es un error que da cuando se ejecuta

salu2
miguel_e
  #8 (permalink)  
Antiguo 27/03/2006, 11:44
 
Fecha de Ingreso: junio-2005
Mensajes: 286
Antigüedad: 19 años
Puntos: 2
entonces tienes que poner un try-catch, como lo hecho perroPato
  #9 (permalink)  
Antiguo 27/03/2006, 12:03
Avatar de Miguel_e  
Fecha de Ingreso: junio-2004
Ubicación: Cuba
Mensajes: 108
Antigüedad: 20 años
Puntos: 0
jejejejeje, ok muchas gracias

salu2
miguel_e
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:39.