BROADCAST em Sockets

Ola Galera…

Estou com mais um problema aqui…

Preciso reconhecer, em minha aplicacao swing, todas as maquinas de uma rede, por broadcast…

Faço sockets numa boa, quando eu seto direto um endereco ip, eh facil e consigo oq quero…

Mas quando coloco qualquer endereço broadcast, dah erro de conexao…

Há alguma classe especifica para Broadcast em JAVA??? Uso protocolo TCP/IP… minha rede eh 192.168.0.0… jah tentei 192.168.0.255 e 255.255.255.255… mas nao funfa nada… a mascara eh classe C.

Ouvi falar de uma classe DatagramSocket que poderia usar, mas eh pra protocolo UDP…e mesmo assim nao achei exemplo praticos de uso…

Aguem tem alguma ajuda em broadcast ai??

obrigado

joao paulo
jopss@hotmail.com

O que vc está tentando fazer?

ola… fazer um sisteminha de reconhecimento de rede… vc escolhe qual sistema eh o servidor e qual sao os clientes… o sistema automaticamente tem q fazer a ligacao entre eles, comparando as Strings cadastradas… se for cliente, localiza um servidor para se conectar… se for servidor, manda para os clientes o seu pc para reconhecer…

eh simples… as strings e reconhecimento eh facil… mas nao estou conseguindo fazer o broadcast pela rede…

jopss

Cara, acho meio difícil fazer broadcast com TCP, já que o protocolo é orientado a conexão.

Pra fazer algo assim, você teria que ficar vasculhando todos os ips e portas possíveis de serem conectados até obter alguma conexão.

Com UDP, você simplesmente envia o ‘pacote’ pela rede, sem garantias de que ele vá chegar ou não direito no destino.

Sugiro que você vá estudar um pouco de UDP e as classes DatagramSocket, MulticastSocket e DatagramPacket.

Inté.

Vlw cara…

Mas qual a diferença entre DatagramSocket e MulticastSocket???

Alguem tem algum exemplinho por ae??

jopss :stuck_out_tongue:

Cara, pra que tu precisa do broadcast?
Tu precisa pegar os IPS válidos?
Ou tu quer que respondam apenas que forem seus clientes?

Só para esclarecimento, não é possível tu ter acesso a uma chamada ARP. O OS que responde ao broadcast.
Logo, mesmo que tu conseguisse fazer a parte servidor, um cliente teu nunca vai saber que chamam por ele.

bom, eu nao utilizo a tabela arp, quando um cliente recebe uma notificacao q precisa retornar algo pra servidor ou vice-versa… eu faço isso:

saida.writeUTF(esperando.getLocalAddress().getLocalHost().getHostAddress());

Bom, pelos meus pequenos testes aki ele retorna pra onde for o ip da maquina…

E achei um bom tutorial aki nesse link, pra kem quiser ver:
http://www.javafree.org/javabb/viewtopic.jbb?t=2910

jopss :stuck_out_tongue: