Java Socketリモートシャットダウン、再起動
5259 ワード
Java Socketリモートシャットダウン、再起動
要旨-Java Socketを通じてリモートシャットダウンを実現して、コマンドを再起動します-以下、直接コードを貼って、コードはサービス側の操作を実現して、クライアントはシャットダウンに応答して、操作を再起動します
“` package test.shutdown;
/** * Created by zqq3436 on 2017/3/14. */ import java.net.*; import java.io.*;
public classサーバ{{ServerSocket server=null;Socket you=null;String s=null;DataOutputStream out=null;publicサーバ()///////////////////////////////////////////////////////////////////////////////////////////初期化ServerSocket(9090);System.out.println("wait.....");you=server.accept();////////////////////////////初期化出力ストリームout=new DataOutOutputStream(you.getOutputStream();}catch(Exception){}}}}}}
//コマンドの送信方法public void sendOrder(String s){try{out.writeUTF(s);}catch(Exception){}}
}
末尾脚注-ここでは、クライアントがコマンドを送信するように変更することもできます.サーバ側はリモートコマンドを実行します.コードは極めて似ています.ここでは挙げません.
要旨-Java Socketを通じてリモートシャットダウンを実現して、コマンドを再起動します-以下、直接コードを貼って、コードはサービス側の操作を実現して、クライアントはシャットダウンに応答して、操作を再起動します
( )
package test.shutdown;
/**
* Created by zqq3436 on 2017/3/14.
*/
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client implements Runnable {
String s = null;
Socket mysocket;
DataInputStream in = null;
DataOutputStream out = null;
Thread thread = null;
public Client() {
// socket,
thread = new Thread(this);
try {
//
Thread.sleep(500);
mysocket = new Socket("localhost", 9090);//localhost IP
//
in = new DataInputStream(mysocket.getInputStream());
out = new DataOutputStream(mysocket.getOutputStream());
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
}
//
thread.start();
}
//
public static void main(String args[]) {
new Client();
}
//
public void ExeCmd(String s) {
try {
Runtime ec = Runtime.getRuntime();
ec.exec(s);
} catch (IOException e) {
e.printStackTrace();
}
}
public void run() {
while (true) {
try {
//
String s = in.readUTF();
ExeCmd(s);//
Thread.sleep(200);
} catch (Exception e) {
}
try {
// ,
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
( )
“` package test.shutdown;
/** * Created by zqq3436 on 2017/3/14. */ import java.net.*; import java.io.*;
public classサーバ{{ServerSocket server=null;Socket you=null;String s=null;DataOutputStream out=null;publicサーバ()///////////////////////////////////////////////////////////////////////////////////////////初期化ServerSocket(9090);System.out.println("wait.....");you=server.accept();////////////////////////////初期化出力ストリームout=new DataOutOutputStream(you.getOutputStream();}catch(Exception){}}}}}}
}
// ,
public static void main(String args[])
{
Server server=new Server();
//
server.sendOrder("mmc");
// ,
try{Thread.sleep(500);}catch(Exception e){}
server.sendOrder("shutdown -s -t 5");// 5 ,"shutdown -r -t 5" 5
// ,
try{Thread.sleep(500);}catch(Exception e){}
server.sendOrder("shutdown -a");//
}
//コマンドの送信方法public void sendOrder(String s){try{out.writeUTF(s);}catch(Exception){}}
}
末尾脚注-ここでは、クライアントがコマンドを送信するように変更することもできます.サーバ側はリモートコマンドを実行します.コードは極めて似ています.ここでは挙げません.