Hoje, pensei em uma idéia para desligar meu computador a distância. Consegui e a técnica é bem simples.
Primeiro, no computador que será desligado é necessário que algum código que estabeleça uma conexão em uma porta qualquer (acima da porta 1024) a fim de aguardar a ordem de desligamento.
O desligamento é feito pelo comando "shutdown.exe" do Windows (está na pasta c:\WINDOWS\system32\)
Então, criei uma classe que estabelece uma conexão por TCP na porta 10001. E ela espera somente duas "frases".
Frase 1 - Senha para o desligamento
Frase 2 - argumentos para o desligamento
A senha é importante para que nenhum outro código (além do seu) desligue a máquina.
Os argumentos para o desligamento são os mesmos do comando "shutdown.exe".
A classe que dá a ordem para desligar deve enviar a senha e os argumentos para a porta do computador a ser desligado. E pronto.
A classe ShutListener é o ouviente para ordem. Deixa-a rodando na máquina que vc pretende desligar.
A classe ShutLauncher é o disparador.
p.s: Uso de ShutLauncher
Abra o terminal e vá aonde o .class está e execute
java ShutLauncher 111.111.111.111 -r
O primeiro argumento é o ip da máquina a ser desligado e -r fará com que seja aberta uma janela dizendo o Windows será encerrado dentro 30 segundos.
Argumentos que podem ser passados:
-Abra o terminal e digite: shutdown /?
-Este artigo pode ajudar: link
Comentários:
- Você pode facilmente adaptar para o Linux.
- TCP é usado para garantir que as mensagens enviadas sejam recebidas, pois, TCP implementa transporte confiável. Eu poderia ter usado UDP e implementar o transporte confiável, mas, não estava com disposição para isso.
Passed in SCBCD 5 exam
Há 14 anos
Nenhum comentário:
Postar um comentário