freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計(jì)畢業(yè)論文計(jì)算機(jī)科學(xué)與技術(shù)計(jì)算機(jī)遠(yuǎn)程控制軟件的設(shè)計(jì)與開(kāi)發(fā)-閱讀頁(yè)

2024-12-23 20:32本頁(yè)面
  

【正文】 多種途徑達(dá)到這個(gè)目的。盡管這個(gè)方法很有用,但這樣的程序很難移植,由此造成了另一類的代價(jià)高昂?jiǎn)栴}。但對(duì)于其他許多問(wèn)xxxx 計(jì)算機(jī)遠(yuǎn)程控制軟件的設(shè)計(jì)與開(kāi)發(fā) 14 題,只要求將問(wèn)題劃分進(jìn)入獨(dú)立運(yùn)行的程序片斷中,使整個(gè)程序能更迅速 地響應(yīng)用戶的請(qǐng)求。但假如操作系統(tǒng)本身支持多個(gè)處理器,那么每個(gè)線程都可分配給一個(gè)不同的處理器來(lái)處理,真正進(jìn)入“并行運(yùn)算”狀態(tài)。程序在邏輯意義上被分割為數(shù)個(gè)線程;假如機(jī)器本身安裝了多個(gè)處理器,那么程序會(huì)運(yùn)行得更快,毋需作出任何特殊的調(diào)校。其實(shí)不然,實(shí)用多線程必須解決一個(gè)重要的問(wèn)題:資源共享。例如兩個(gè)進(jìn)程不能同時(shí)調(diào)用同一臺(tái)打印機(jī)打印,必須等一個(gè)進(jìn)程結(jié)束運(yùn)行后另一個(gè)進(jìn)程在進(jìn)行調(diào)用。所以一個(gè)線程可將資源鎖定,在完成了它的任務(wù)后,再解開(kāi)(釋放)這個(gè)鎖,使其他線程可以接著使用同樣的資源,這就是所謂的進(jìn)程同步問(wèn)題。線程是在同一時(shí)間需要完成多項(xiàng)任務(wù)的時(shí)候?qū)崿F(xiàn)的。 (2) 程序的運(yùn)行速度可能加快。 (3) 在一些需要阻塞等待操作的程序中,線程是很實(shí)用的,如數(shù)據(jù)傳輸,等待連接,等待輸入等,并不一定要上述方法都執(zhí)行,主進(jìn)程才能繼續(xù)執(zhí)行,這樣帶來(lái)的方便是非常大的。一個(gè) ServerSocket 構(gòu)造一對(duì)通信套接字方法如下: ServerSocket sr=new ServerSocket(port); Socket sc=new Socket(ip,port); 其中 ServerSocket 的 accpet()方法十分重要,當(dāng)一個(gè)服務(wù)套接字建立之后它會(huì)一直阻塞等待一個(gè)套接字的請(qǐng)求,直到建立連接。 (2) InputStream 、 OutputStream 當(dāng)一個(gè)套接字連 接成功后就可以獲得基于這個(gè)套接字的輸入、輸出流,一切數(shù)據(jù)的發(fā)送和接受都離不開(kāi)輸出、輸入流,我們可以通過(guò)流封裝的方法選擇你要輸入或者輸出的數(shù)據(jù)類型,通過(guò)轉(zhuǎn)換流可以把輸入、輸出流轉(zhuǎn)換到我們需要的數(shù)據(jù)傳輸類型。 既然我們已經(jīng)能通過(guò) Socket 進(jìn)行網(wǎng)間進(jìn)程通訊,進(jìn)行數(shù)據(jù)傳輸,那么,往更深一層去想,如果是傳輸命令讓計(jì)算機(jī)做出響應(yīng)呢?因此,實(shí)現(xiàn)這一假設(shè)的過(guò)程,即為遠(yuǎn)程控制軟件設(shè)計(jì)的基礎(chǔ)思想。 Runtime ec=()。 Exec()方法就可以放入你想要運(yùn)行的命令這樣你就可以在機(jī)器上運(yùn)行你的指令了。 以上就是一個(gè)簡(jiǎn)易的 Java 遠(yuǎn)程控制的實(shí)現(xiàn),當(dāng)然本系統(tǒng)的設(shè)計(jì)要比此步奏復(fù)雜許多,但是基本原理相同。主要用于發(fā)送相應(yīng)命令以及處理相應(yīng)返回信息,具體流程如下圖所示: 圖 客戶端流程 The client processes 文件操作 文件操作包含客戶端的上傳文件( SendFile)、下載文件( DownFile),文件一般操作( FileControl)以及初始化被控端磁盤(pán)( getIniDrivers)。該類主要在初始化的時(shí)候調(diào)用。然后初始化磁盤(pán)數(shù)到顯示界面,代碼如下: for (int i = 0。 i++) { pci[i] = new JPanel()。 cc1[i] = new JButton(new ImageIcon( src\\client\\imges\\))。 cc1[i].setRequestFocusEnabled(false)。// 不繪制邊框 cc1[i].addActionListener(this)。 cc2[i] = new JLabel(drivers[i])。 } 其中 drivers[i]就是調(diào)用初始化磁盤(pán)方法返回的字符數(shù)組。主要流程為下圖所示: 等待操作信息( Opera) 發(fā)送命令 接受命令 關(guān)閉 Socket 等待操作信息 xxx 學(xué)院本科生畢業(yè)論文 (設(shè)計(jì) ) 19 圖 操作流程 Operation processes 該類中包含文件操作的相關(guān)方法,比如 public String[][] getFiles(String opera)方法, public boolean deleteFile(String opera), public boolean upFile(String opera, String upload)和 public boolean downFile(String opera, String download)方法。 DataInputStream dis = new DataInputStream(is)。 info = ()。 ()。amp。)。 for (int i = 0。 i++) { String[] temp = s[i + 1].trim().split(,)。 files[i][1] = temp[1]。 } else { String t = ()。 } } return files。 public boolean deleteFile(String opera)方法根據(jù)地址刪除服務(wù)端相應(yīng)文件,部分代碼如下: OutputStream os。 DataOutputStream dos = new DataOutputStream(os)。 ()。 return false。 os = ()。 (opera)。 } catch (IOException e1) { ()。 其中最為重要的是最后一行 new SendFile(socket, upload, ).start(),啟xxx 學(xué)院本科生畢業(yè)論文 (設(shè)計(jì) ) 21 用了一個(gè)新的線程進(jìn)行傳輸。 return false。 os = ()。 (opera)。 } catch (IOException e1) { ()。 最后一行 new DownFile(socket, download, ).start()。 遠(yuǎn)程控制臺(tái) 主要包括 2部分:產(chǎn)生一個(gè)新的 CMD 控制臺(tái)窗口,包括命令行輸入,幫助,命令行顯示,單擊和回車時(shí)間監(jiān)聽(tīng);發(fā)送命令到服務(wù)器,接受服務(wù)器返回的處理結(jié)果,并顯示在窗口中。部分代碼如下: OutputStream os。 DataOutputStream dos = new DataOutputStream(os)。+opera)。 該部分為命令的發(fā)送,返回結(jié)果的接收為: xxx 學(xué)院本科生畢業(yè)論文 (設(shè)計(jì) ) 23 InputStream is = ()。 String info = 。 ()。 if (info != null amp。 info != ) { (\n返回信息 \n+info)。 return true。 遠(yuǎn)程監(jiān)控 用于遠(yuǎn)程監(jiān)控的主要操作,包括遠(yuǎn)程圖像接收( RecivImg)、發(fā)送事件信息( SendOperate)以及主要顯示窗體( CWindow) (1) 圖像接收 通過(guò)接收服務(wù)端發(fā)來(lái)的經(jīng)過(guò)壓縮的流,并解壓為圖像流,最終顯示到窗體中。部分代碼為: socket = new Socket((), )。 ZipInputStream zis = new ZipInputStream(dis)。 try { ()。// 把 ZIP 流轉(zhuǎn)換為圖片 ImageIcon img = new ImageIcon(image)。 ()。 } } catch (IOException ioe) { (1)。為了使圖像連貫,我們?cè)O(shè)置接收?qǐng)D片的間隔為 50毫秒,具體方法為 (new ImageIcon(image))。部分代碼如下: Socket socket = new Socket(, )。 (().getBytes())。 ()。主要實(shí)現(xiàn)的事件有鼠標(biāo)下壓、鼠標(biāo)釋放、鼠標(biāo)拖拽、鼠標(biāo)移動(dòng)、鍵盤(pán)下壓、鍵盤(pán)抬起等事件。 鼠標(biāo)下壓事件監(jiān)聽(tīng)代碼: public void mousePressed(MouseEvent e) { (e)。 xxx 學(xué)院本科生畢業(yè)論文 (設(shè)計(jì) ) 25 int y = (int) () + (int) ().getValue()。 SendOperate sender=new SendOperate(, (operateStr))。 } 主要發(fā)送的信息為 operateStr,包含操作類型( mousePressed),鼠標(biāo)坐標(biāo) x, y,最后啟用新的線程傳輸。 鍵 盤(pán)監(jiān)聽(tīng)事件: public void keyPressed(KeyEvent e) { (e)。 SendOperate sender=new SendOperate(, (operateStr))。 } public void keyReleased(KeyEvent e) { (e)。 SendOperate sender=new SendOperate(, (operateStr))。 } 實(shí)現(xiàn)鍵盤(pán)單擊事件監(jiān)聽(tīng),傳輸?shù)淖址疄椴僮黝愋停?keyReleas、 keyPress),加鍵值,發(fā)送到 服務(wù)端后由服務(wù)端解析處理。部分代碼如下: if ((null, 您確定要關(guān)閉遠(yuǎn)程控制端計(jì)算機(jī)? , 提醒 , ) == 0) { (cmd。 } 主要通過(guò) CMD 命令 ShutDown 實(shí) 現(xiàn) 關(guān) 機(jī) , 傳 輸 操 作 的 方 法 為sendOpera(cmd。 退出 返回登錄界面或關(guān)閉程序。 ()。 ()。 } else { ()。 ()。 xxx 學(xué)院本科生畢業(yè)論文 (設(shè)計(jì) ) 27 (2) 一般幫助 列出軟件相關(guān)信息。遠(yuǎn)程控制軟件的具體業(yè)務(wù)邏輯都是在被控制端實(shí)現(xiàn)的,主控端只負(fù)責(zé)傳送要執(zhí)行的命令和顯示返回的結(jié)果。具體設(shè)計(jì)思想如 下圖: 圖 被控端流程 Server processes 文件操作( ) (1) xxxx 計(jì)算機(jī)遠(yuǎn)程控制軟件的設(shè)計(jì)與開(kāi)發(fā) 28 文件操作基礎(chǔ)類,包括 deletefile(String delpath, StringBuffer sb):刪除文件或文件夾; readfile(String filepath):讀取文件或文件目錄;只需要被控端接收到文件或文件目錄地址,調(diào)用方法即可。 (() + + delpath + ,刪除成功 !,)。 (, + () + 開(kāi) 始 刪 除 ! , + () + delpath + ,)。 for (int i = 0。 i++) { File delfile = new File(delpath + \\ + filelist[i])。 (() + + () + 刪 除成功! ,)。 } } (0, 14)。 (() + delpath + , + () + 刪除完成! + ,)。 xxx 學(xué)院本科生畢業(yè)論文 (設(shè)計(jì) ) 29 讀取目錄代碼: if (() amp。 !()) { StringBuffer files = new StringBuffer()。 (() + ,)。)。 return true。amp。 StringBuffer files = new StringBuffer()。 return false。 i 。 if (()) { (文件夾 ,)。 (() + 。 } else if (!()) { (文 件 ,)。 (() + 。 } } (())。 } xxxx 計(jì)算機(jī)遠(yuǎn)程控制軟件的設(shè)計(jì)與開(kāi)發(fā) 30 遍歷地址標(biāo)注的子目錄或子文件,人后分別判斷類型如:文件或文件夾,文件或文件夾安分號(hào)隔開(kāi),文件或文件夾信息用逗號(hào)隔開(kāi),把最后組成的字符串傳送回客戶端解析成目錄。 基本響應(yīng)的方法有: if (tj.equals(s[0]) amp。 s[1] != )響應(yīng)客戶端發(fā)送的打開(kāi)方法,調(diào)用readfile(); if (sc.equals(s[0]) amp。 s[1] != )響應(yīng)客戶端的刪除方法,調(diào)用 deletefile(); if (xz.equals(s[0]) amp。 s[1] != )響應(yīng)客戶端的下載方法,調(diào)用新的線程進(jìn)行傳送 new SendFile(socket, path).start()。amp。 (3) 主要是讀取被控端磁盤(pán)數(shù),并反饋給控制端,只在初始化的時(shí)候調(diào)用。 StringBuffer temp = new StringBuffer()。 i 。)。 完成的功能是便利本機(jī)的磁盤(pán)驅(qū)動(dòng),記錄下盤(pán)符,行車字符串傳送至客戶端進(jìn)行解析。部分代碼為: byte[] buf = new byte[]。 +=
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1