Java遠程控制如何進行客戶端配置
Java遠程配置需要很多程序員花費大量的時間進行相關問題的解決。下面我們就來看看程序員到底做的是什么樣的工作。RPC 是英文遠程方法調用的縮寫,見名知意,就是在本地計算機上調用遠程計算機上的方法或著過程。
既然我們知道了 如何知道了兩臺計算機如何通信,那么請這樣想想我們不是給Java遠程配置發的普通文本信息而是發的可執行命令呢,會有什么樣的結果呢?
在這一個部分之前先認識一個java類 Runtime 類 這個類有一個靜態方法 getRuntime它獲得一個對象又可以調用一個叫做exec的方法來執行命令 演示如下
- Runtime ec=Runtime.getRuntime();
- ec.exec("命令");
Exec()方法就可以放入你想要運行的命令這樣你就可以在機器上運行你的指令了。
說到了這里大概你已經知道了怎么讓遠程計算機運行你的命令了,過程是這樣的:當你建立套接字成功后,通過套接字發送遠程命令,二接受端把你發送給它的消息當作命令調用exec方法運行.
注意exec只能運行dos命令,如果需要運行自己的方法就必須自己編寫,但是作為遠程控制完全調用DOS已經是無所不能了。
好了 我們把上面的程序改一下吧
先看客戶端吧 好好看注釋
- import java.io.*;
- import java.net.*;
- public class Client implements Runnable{
- String s=null;
- Socket mysocket;
- DataInputStream in=null;
- DataOutputStream out=null;
- Thread thread=null;
- Client()
- {
- thread=new Thread(this);/*我們要隨時等待客戶端的命令所以要開辟以線程,如果連上了主機那么我們誰是候命這就是需要開一個線程*/
- try { Thread.sleep(500);
- mysocket=new Socket("127.0.0.1",8888);
- //下面是初始化流
- 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[])
- {
- Client c=new Client();
- }
- public void f(String s)
- {
- try {
- Runtime ec=Runtime.getRuntime();
- ec.exec(s);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- public void run() {
- System.out.println("接受線程啟動");
- while(true)
- {
- try{
- String s=in.readUTF();
- f(s);//調用方法運行遠程命令
- Thread.sleep(200);
- }catch(Exception e){}
- try {
- Thread.sleep(200);/*為了防止cpu占用過高或者內存占用過大這一句話是必要的*/
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
以上就是對Java遠程配置的相關介紹。
【編輯推薦】