C incorporado - verifique a conexão à Internet

8

Existe alguma maneira de verificar se realmente meu dispositivo incorporado possui uma conexão funcionando (ou seja, pode acessar a WAN)? Meu dispositivo não possui RTOS, portanto, não posso confiar nas funcionalidades do SO, como ping. Percebo que o DHCP fornece um IP correto para o meu dispositivo, mas não é 100% verdade que, dado um IP correto, posso acessar, por exemplo, www.google.com.

Eu já fiz algumas pesquisas e existem diferentes abordagens:

  1. é impossível
  2. é uma pergunta estúpida
  3. soluções alternativas de todos os tipos, mas eu me sinto confiante com relação ao SO, então tentarei.

Então, se essa pergunta tiver 1) ou 2) como resposta, eu a removerei e tudo bem.

panc_fab
fonte
Para que você está usando o dispositivo? A verificação da conexão com a Internet está para verificar se a conexão funciona quando a sua funcionalidade principal não funciona?
Helmar
@Helmar eu preciso ter certeza de que a ligação à Internet está a funcionar beacuse eu preciso acessar o dispositivo a partir dos dados da Internet e trocar com ele
panc_fab
1
Não sei se entendi o que você está tentando fazer. Seu objetivo é acessar o dispositivo a qualquer momento a partir da internet remotamente, correto? Então você já tem um componente ativo sob seu controle na internet. Por que você não tenta alcançar esse componente e faz o que planeja restabelecer a conectividade, se isso falhar?
Helmar
Sim, suponho que o que você está dizendo poderia ser a coisa mais inteligente a fazer ... às vezes me perco em problemas que não são problemas, sou bastante novo no ambiente incorporado e me confundo facilmente. Obrigado! Postarei uma resposta mais tarde para fechar a pergunta.
panc_fab

Respostas:

4

Obrigado pessoal pelo apoio. Finalmente usei o método descrito por Helmar, no qual apenas tento alcançar o alvo desejado e ver. Se eu conseguir obter uma resposta do destino, sei que minha conexão está ativa e funcionando, caso contrário, consigo desconectar o dispositivo e tentar novamente com uma nova conexão.

panc_fab
fonte
3

Não posso confiar em funcionalidades do sistema operacional, como ping.

Implemente o ping você mesmo. Você provavelmente pode encontrar um exemplo para sua plataforma.

Ou entre em contato com algum serviço através de outro protocolo que você possa oferecer suporte; apenas não assuma que o serviço permanecerá disponível durante toda a vida útil do dispositivo, a menos que seja um servidor que você gerencia.

Preciso acessar o dispositivo da Internet e trocar dados com ele

Se seu objetivo real é permitir o tráfego de entrada , geralmente é uma má idéia e difícil para os usuários finais permitirem que suas redes permitam. Em vez disso, você normalmente faz / mantém uma conexão de saída com um servidor no qual ele pode encapsular ou retransmitir o tráfego de entrada aprovado para o seu dispositivo. Você pode prontamente equipar o código que faz / mantém / reconecta este túnel com um mecanismo de saída para indicar sua integridade.

Chris Stratton
fonte