溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java中怎么遠(yuǎn)程控制客戶端

發(fā)布時(shí)間:2021-08-13 11:48:02 來(lái)源:億速云 閱讀:190 作者:Leah 欄目:編程語(yǔ)言

Java中怎么遠(yuǎn)程控制客戶端,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

在這一個(gè)部分之前先認(rèn)識(shí)一個(gè)java類 Runtime 類 這個(gè)類有一個(gè)靜態(tài)方法 getRuntime它獲得一個(gè)對(duì)象又可以調(diào)用一個(gè)叫做exec的方法來(lái)執(zhí)行命令 演示如下

Runtime ec=Runtime.getRuntime();  ec.exec("命令");

Exec()方法就可以放入你想要運(yùn)行的命令這樣你就可以在機(jī)器上運(yùn)行你的指令了。

說(shuō)到了這里大概你已經(jīng)知道了怎么讓遠(yuǎn)程計(jì)算機(jī)運(yùn)行你的命令了,過(guò)程是這樣的:當(dāng)你建立套接字成功后,通過(guò)套接字發(fā)送遠(yuǎn)程命令,二接受端把你發(fā)送給它的消息當(dāng)作命令調(diào)用exec方法運(yùn)行.

注意exec只能運(yùn)行dos命令,如果需要運(yùn)行自己的方法就必須自己編寫,但是作為遠(yuǎn)程控制完全調(diào)用DOS已經(jīng)是無(wú)所不能了。

好了 我們把上面的程序改一下吧

先看客戶端吧 好好看注釋

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);/*我們要隨時(shí)等待客戶端的命令所以要開辟以線程,如果連上了主機(jī)那么我們誰(shuí)是候命這就是需要開一個(gè)線程*/  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();//啟動(dòng)線程  }  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("接受線程啟動(dòng)");  while(true)  {  try{  String s=in.readUTF();  f(s);//調(diào)用方法運(yùn)行遠(yuǎn)程命令  Thread.sleep(200);  }catch(Exception e){}  try {  Thread.sleep(200);/*為了防止cpu占用過(guò)高或者內(nèi)存占用過(guò)大這一句話是必要的*/  } catch (InterruptedException e) {  // TODO Auto-generated catch block  e.printStackTrace();

關(guān)于Java中怎么遠(yuǎn)程控制客戶端問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI