Java - no Windows e Mac, como você trabalha com o tipo de rede?

0

Estou trabalhando em um aplicativo Java que é executado no Windows e no Mac. Ele se comunica com vários servidores diferentes, mas precisa se comportar de maneira diferente, dependendo de estar usando Wi-Fi ou uma conexão com fio.

Existe alguma maneira de descobrir o que está sendo usado?

Eu olhei usando NetworkInterface.getNetworkInterfaces() , mas isso não me diz qual NetworkInterface está sendo usado e se é WiFi ou não.

    
por tjlprice 24.05.2013 / 13:13

2 respostas

0

A única maneira de fazer isso usando APIs nativas.

  • No Windows, há um link do Wifi nativo
  • E no Mac, há o link da rede WLAN principal

Estes podem ser conectados a partir do Java usando o JNA. No Mac, você precisará usar algo como link no topo do JNA para usar o Objective-C framework.

    
por 04.07.2013 / 11:00
0

Com java.lang.ProcessBuilder , você pode executar ipconfig /all no Windows e /sbin/ifconfig -a no Linux (e no Mac?) para responder à pergunta "Como estou conectado à rede?".

Para ser mais completo e preciso, você pode impor seu protocolo para adicionar um comportamento adaptativo automático: a qualidade, a largura de banda, o número de pacotes de perda e assim por diante permitem que você decida como conduzir seu protocolo.

Você pode usar o TCP / IP para orientar a lógica da troca (comportamento, controle) e usar o UDP para os dados. Primeira camada: o UDP considera descoberta e dados, a segunda camada criada no TCP para oferecer gerenciamento de sessões.

    
por 24.05.2013 / 13:46