HomeInformação › Como localizar automaticamente seu projeto na rede

Como localizar automaticamente seu projeto na rede

Neste post, ao menos por enquanto, eu não vou dar nenhum código. Apenas explicar em linhas gerais o processo.

Considerações gerais

Os três protocolos mais usados para comunicação com seu projeto são UDP, TCP e HTTP. Cada um deles tem suas vantagens e desvantagens, mas o único realmente apropriado para localização é o UDP, porque é o único que pode enviar mensagens sem ficar esperando por uma resposta.

Digamos que sejam dois dispositivos: cliente e servidor.

  • No cliente, emita um broadcast (mensagem para 255.255.255.255) UDP na rede com uma mensagem do tipo: “onde você está”?. Todos os dispositivos no mesmo segmento de rede recebem o broadcast;
  • No servidor você deve responder essa pergunta de uma forma que o cliente saiba que a resposta vem do dispositivo certo. Você pode responder direto para o cliente (nem sempre é possível) ou fazer também um broadcast com a resposta (recomendável). Por exemplo, se a consulta tiver a pergunta “MEUSERVIDOR?” a resposta pode ser “MEUSERVIDOR!” ou “MEUSERVIDOR1”, “MEUSERVIDOR2”, etc;
  • Na ponta que fez a consulta, extraia da resposta o IP de quem enviou;
  • Se o IP do servidor não estiver na mesma faixa do cliente você vai precisar reconfigurar algo. Se estiver…
  • Pronto, agora você pode usar esse endereço IP para se conectar ou enviar mensagens por outros protocolos, como TCP e HTTP.

Outras considerações

Isso não é gambiarra. Produtos comerciais usam esse mesmo método geral de localização automática. Por exemplo, câmeras IP;

Em condições normais, broadcasts não são propagados através de roteadores. Seria um pesadelo se fossem;

Ao fazer broadcast para 255.255.255.255 o servidor responderá mesmo que esteja em outra sub-rede lógica. Por exemplo, se o cliente tiver um IP do tipo 10.0.0.x e por alguma razão o servidor estiver configurado para 192.168.0.x , ainda assim haverá resposta para o broadcast, mas o cliente só a receberá se a resposta também for um broadcast. Isso é útil para localizar equipamentos mal configurados, mas você não poderá estabelecer uma conexão HTTP ou TCP enquanto não trouxer o servidor para a mesma sub-rede lógica que o cliente. Se quiser que o broadcast somente localize dispositivos na mesma sub-rede lógica, deve mandar a mensagem para o endereço de broadcast da sub-rede. Por exemplo, numa rede do tipo 10.0.0.x o endereço de broadcast é 10.0.0.255.

Sempre que seu servidor iniciar é recomendável fazer o broadcast de sua identificação. Faça também com que o cliente esteja atento a esses broadcasts para detectar automaticamente a presença do servidor.

 

Leave a Comment

NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">