Gostaria de Gerar Broadcast a partir de um Servidor
e receber a menssagem desse BroadCast em todos os clientes interessados (que estejam executando o cliente)
li varios topicos sobre sockets , e datagramas, mas admito que nao entendi a diferença de comportamente servidor/cliente
se pudessem postar alguns exemplos de broadcast, se possiveis comentados.
desde ja obrigado.
Rafael Bis Ferreira
Bacharelado em Sistemas de Informação
IFES
4º Periodo
Não tem muita diferença. Toda mensagem que você envia para um endereço de broadcast ou multicast será recebida por todos que escutarem naquele endereço.
Como o protocolo UDP não é orientado a conexão, não existe necessidade de um servidor para redistribuir essa mensagem.
Dê uma olhada na classe DatagramSocket, do java.
J
j.silvestre
só complementando…
vc precisa saber qual é o endereço de broadcast, normalmente é o ultimo endereço valido:
tudo que vc enviar para o endereço acima sera recebidos por todas as 254 maquinas.
agora isso muda muito pois o administrador pode dividir estes endereços em varias redes e ai vc tem que obter com ele os endereços de broadcast da rede onde vc esta.
inicialmente eu tenho q modelar para que meu algoritmo fassa por si so (ou seja descubra sosinho (por codigo) o Ip da maquina atual e qual seu endereço de broadcast, fik complicado entao o uso de qualquer coisa explicita assim, existe algum meio em java de descobrir o endereço de broadcast, assim como o de encontrar o IP?
J
j.silvestre
par descobrir o ip atual da sua maquina tem a rotina abaixo, diga de passagem que eu peguei no guj em algum lugar.
try{InetAddressend=InetAddress.getLocalHost();Stringhost=end.getHostName();Stringendereco=end.getHostAddress();System.out.println("Host : "+host+"IP :"+endereco);}catch(UnknownHostExceptionuhex){System.out.println("Não foi possivel obter endereço IP");}
agora para descobrir o endereço de broadcast da rede não sei se o java já tem essa classe pronta.
para vc descobrir o endereço de broadcast vc tem que pegar o endereço ip ea mascara de rede fazer operações AND então vc consegue obter o primeiro e o ultimo ip valido sendo que oultimo ip valido é o endereço de broadcast. o