《基于Java手機(jī)遠(yuǎn)程協(xié)助軟件系統(tǒng)設(shè)計(jì)》11000字_第1頁(yè)
《基于Java手機(jī)遠(yuǎn)程協(xié)助軟件系統(tǒng)設(shè)計(jì)》11000字_第2頁(yè)
《基于Java手機(jī)遠(yuǎn)程協(xié)助軟件系統(tǒng)設(shè)計(jì)》11000字_第3頁(yè)
《基于Java手機(jī)遠(yuǎn)程協(xié)助軟件系統(tǒng)設(shè)計(jì)》11000字_第4頁(yè)
《基于Java手機(jī)遠(yuǎn)程協(xié)助軟件系統(tǒng)設(shè)計(jì)》11000字_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

緒論1.1研究背景安卓系統(tǒng)是由美國(guó)Google公司和開(kāi)放手機(jī)聯(lián)盟領(lǐng)導(dǎo)組織和開(kāi)發(fā)出來(lái)的,安卓系統(tǒng)基于Linux內(nèi)核(不包含GNU組件),且平臺(tái)是開(kāi)源的,這就使得開(kāi)發(fā)者可以進(jìn)入學(xué)習(xí)。大量移動(dòng)設(shè)備都采用安卓系統(tǒng),安卓系統(tǒng)應(yīng)用范圍十分廣泛,例如大家日常生活經(jīng)常使用的智能手機(jī)、相機(jī)、平板、游戲機(jī),這些硬件設(shè)備都是使用Android系統(tǒng)。Android的系統(tǒng)架構(gòu)是以分層架構(gòu)實(shí)現(xiàn),與其他平臺(tái)上的操作系統(tǒng)相比,Android系統(tǒng)并沒(méi)有特殊的地方。Android也是四層結(jié)構(gòu)組成,自上而下對(duì)應(yīng)的是應(yīng)用程序?qū)印?yīng)用程序框架層、系統(tǒng)運(yùn)行庫(kù)層和Linux內(nèi)核層。遠(yuǎn)程控制是指管理人員通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)或雙方接入網(wǎng)絡(luò),通過(guò)遠(yuǎn)程撥號(hào)的方式將被控制的電腦連接起來(lái),將被控制電腦的桌面環(huán)境提示到自己的計(jì)算機(jī)上,并進(jìn)行配置,軟件安裝,通過(guò)本地電腦對(duì)遠(yuǎn)程電腦進(jìn)行修改和其他工作。遠(yuǎn)程控制需要網(wǎng)絡(luò)的支持。本地設(shè)備是主控制端或客戶端,主要工作是將控制命令的發(fā)送出去,接收方是被控制端或服務(wù)器端,是處于另一端網(wǎng)絡(luò)的設(shè)備。遠(yuǎn)"程"并不簡(jiǎn)單指代遠(yuǎn)"距離",客戶端和服務(wù)器端可以處在同一局域網(wǎng)內(nèi),也可以是兩臺(tái)設(shè)備連接各自的網(wǎng)絡(luò)后處在不同網(wǎng)段的兩臺(tái)及以上的設(shè)備。最初的遠(yuǎn)程協(xié)助的意思是僅僅對(duì)處于局域網(wǎng)中設(shè)備實(shí)現(xiàn)的遠(yuǎn)程控制。近幾年互聯(lián)網(wǎng)和計(jì)算機(jī)技術(shù)更新?lián)Q代,遠(yuǎn)程協(xié)助功能日益強(qiáng)大,對(duì)于被控端設(shè)備,主控端連接成功后就可以啟動(dòng)被控端設(shè)備的工具,甚至可以查看被控端設(shè)備中的文件資料。1.2研究現(xiàn)狀在Android平臺(tái)上,這里聚集了大量?jī)?yōu)秀的程序員和科研工作者,同時(shí)平臺(tái)上的源代碼和學(xué)習(xí)資料都是向大眾開(kāi)放,用戶可以注冊(cè)一個(gè)賬戶然后提取自己需要的資料,這一有利條件推動(dòng)了國(guó)內(nèi)外眾多程序員對(duì)安卓系統(tǒng)應(yīng)用軟件上的深入開(kāi)發(fā)研究,尤其是以安卓平臺(tái)為基礎(chǔ)的內(nèi)核特制、應(yīng)用軟件開(kāi)發(fā)、系統(tǒng)框架設(shè)計(jì)這些方面。遠(yuǎn)程協(xié)助技術(shù)在現(xiàn)在已經(jīng)發(fā)展的較為完善了,目前的遠(yuǎn)程協(xié)助的實(shí)現(xiàn)主要有四種方法:一是基于C/S(client/server——客戶端/服務(wù)器架構(gòu))架構(gòu)的web遠(yuǎn)程協(xié)助。傳統(tǒng)的兩層架構(gòu)上,C/S架構(gòu)是鮮明代表,客戶端計(jì)算機(jī)上運(yùn)行的程序包括用戶電腦上運(yùn)行的一個(gè)或多個(gè)軟件,而服務(wù)器端有兩種,一種是數(shù)據(jù)庫(kù)服務(wù)器端,在客戶端訪問(wèn)服務(wù)器端的數(shù)據(jù)之前,需要與數(shù)據(jù)庫(kù)先連接;另一種是Socket服務(wù)器端,服務(wù)器端的程序與客戶端兩者之間進(jìn)行程序上的會(huì)話溝通,需要編譯Socket實(shí)現(xiàn)兩臺(tái)設(shè)備在網(wǎng)絡(luò)下相互連接。C/S架構(gòu)是目前遠(yuǎn)程協(xié)助主要架構(gòu),客戶端在這種架構(gòu)中起重要作用,這就使得處在客戶端的那臺(tái)設(shè)備因?yàn)樘幚淼氖聞?wù)過(guò)多cpu負(fù)荷量過(guò)大,客戶端要實(shí)現(xiàn)業(yè)務(wù)邏輯、展示用戶界面、顯示邏輯、事務(wù)信息處理,并且要使得在做SQL這一模塊和實(shí)現(xiàn)存儲(chǔ)過(guò)程時(shí)能夠?qū)崿F(xiàn)數(shù)據(jù)交互,還需要訪問(wèn)數(shù)據(jù)庫(kù),只有通過(guò)這種連接才能使數(shù)據(jù)保持穩(wěn)定,滿足在現(xiàn)實(shí)生活中開(kāi)發(fā)一個(gè)項(xiàng)目的需要。還有的方法是基于Java語(yǔ)言的B/S架構(gòu)的Web遠(yuǎn)程控制方法。B/S架構(gòu)的全稱:Browser/Server,即瀏覽器/服務(wù)器結(jié)構(gòu)。Browser指的是Web瀏覽器,web前端瀏覽器上不像C/S架構(gòu)的客戶端,它處理的事務(wù)很少,承受的壓力很小,相比之下,服務(wù)器端卻堆積了絕大多數(shù)的事務(wù)邏輯等待系統(tǒng)處理。Browser客戶端、WebApp服務(wù)器端、DB端組成三層架構(gòu)。B/S架構(gòu)的系統(tǒng)只要設(shè)備上裝有Web瀏覽器就可以實(shí)現(xiàn)需要的功能。B/S架構(gòu)中,各種架構(gòu)負(fù)責(zé)不同的系統(tǒng)運(yùn)行實(shí)現(xiàn),邏輯信息經(jīng)過(guò)系統(tǒng)處理通過(guò)web前端瀏覽器顯示,為了避免客戶端的邏輯事務(wù)堆積在同一處處理造成負(fù)荷壓力大的問(wèn)題,這一部分由webapp處理。第三種實(shí)現(xiàn)方式是基于目前已有的C/S架構(gòu)和B/S架構(gòu)的基于GPRS和Internet網(wǎng)絡(luò)。這種方法充分利用兩者的顯著特點(diǎn),建成的是可以實(shí)現(xiàn)遠(yuǎn)程分布式控制系統(tǒng)。最后一種是以單片機(jī)為微控制核心實(shí)現(xiàn)了IPv4和TD-SCDMA協(xié)議的通信,構(gòu)建了基于TD-SCDMA協(xié)議的遠(yuǎn)程控制方法。截至目前,我國(guó)市場(chǎng)上已經(jīng)有相關(guān)成果出現(xiàn),如向日葵遠(yuǎn)程控制,teamview軟件以及華為公司推出的“親情關(guān)懷”,還有利用藍(lán)牙技術(shù)連接的近距離無(wú)線通信。親情關(guān)懷需要使用華為賬號(hào)登錄,可通過(guò)網(wǎng)絡(luò)撥打電話或者以發(fā)送短信的方式進(jìn)行實(shí)現(xiàn),遠(yuǎn)程協(xié)助的功能具體體現(xiàn)在“請(qǐng)求幫助”(請(qǐng)求對(duì)方遠(yuǎn)程控制你的手機(jī)),“提供幫助”(請(qǐng)求遠(yuǎn)程控制對(duì)方手機(jī))兩個(gè)核心選項(xiàng)上。另外重要的一點(diǎn):親情關(guān)懷雖然可以安裝在市場(chǎng)上所有Android手機(jī)上,但是這一工具只有華為品牌的手機(jī)才可以使用此功能。2相關(guān)理論及技術(shù)背景2.1Java語(yǔ)言Java語(yǔ)言發(fā)行時(shí)間較晚,它包含C++語(yǔ)言的所有優(yōu)點(diǎn),C++語(yǔ)言發(fā)行時(shí)間早,很多結(jié)構(gòu)負(fù)責(zé),令很多程序員在早期學(xué)習(xí)的時(shí)候常常對(duì)繼承、指針等地方費(fèi)解,針對(duì)這一情況,Java語(yǔ)言進(jìn)行適當(dāng)取舍,對(duì)c++語(yǔ)言中結(jié)構(gòu)復(fù)雜冗余的概念進(jìn)行優(yōu)化,因此Java語(yǔ)言對(duì)于初學(xué)者來(lái)說(shuō)簡(jiǎn)單易上手,強(qiáng)大的功能使得其在編程開(kāi)發(fā)語(yǔ)言領(lǐng)域占據(jù)重要地位。Java語(yǔ)言是靜態(tài)面向?qū)ο蟮木幊陶Z(yǔ)言的典型,他能有效體現(xiàn)面向?qū)ο罄碚摚钩绦騿T在進(jìn)行一些規(guī)模較大的開(kāi)發(fā)編程中能夠有清晰的邏輯思維。Java語(yǔ)言沒(méi)有結(jié)構(gòu)不需要指針,數(shù)組和串是對(duì)象,能自動(dòng)處理對(duì)象間的各種引用關(guān)系,從而實(shí)現(xiàn)對(duì)無(wú)用單位的采集工作,這樣,程序員無(wú)需對(duì)存儲(chǔ)管理的工作阻礙,能將更多的時(shí)間和精力放在產(chǎn)品研發(fā),大大提高工作效率。Java語(yǔ)言特點(diǎn):簡(jiǎn)單性、面向?qū)ο蟆⒎植夹浴⒔研浴踩浴⑵脚_(tái)獨(dú)立與可移植性、多線程性、動(dòng)態(tài)性、編譯和解釋性、高性能等。Java語(yǔ)言被特意設(shè)計(jì)成適應(yīng)于不斷變化的環(huán)境,其應(yīng)用范圍十分廣泛,可用于編寫(xiě)桌面應(yīng)用程序、Web應(yīng)用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應(yīng)用程序、Android應(yīng)用等。Java語(yǔ)言運(yùn)行工作原理:1.Java編程語(yǔ)言2.Java類文件格式3.Java虛擬機(jī)4.Java應(yīng)用程序接口

圖2-1Java工作原理當(dāng)編輯并運(yùn)行Java程序時(shí),需同時(shí)涉及這四方面。使用文字編輯軟件、Eclipse、Idea在Java源文件中定義不同類,通過(guò)調(diào)用類中的方法訪問(wèn)資源系統(tǒng),把源文件編譯生成二進(jìn)制中間碼,存儲(chǔ)在class文件中,然后再通過(guò)運(yùn)行與操作系統(tǒng)平臺(tái)環(huán)境相對(duì)應(yīng)的Java虛擬機(jī)來(lái)運(yùn)行class文件,執(zhí)行編譯產(chǎn)生的字節(jié)碼,調(diào)用class文件中實(shí)現(xiàn)的方法來(lái)滿足程序的JavaAPI調(diào)用。如圖2-2所示。圖2-2Java工作流程2.2Java編程環(huán)境Java開(kāi)發(fā)包及Java開(kāi)發(fā)工具是基于JDK(JAVADevelopmentKit),這個(gè)開(kāi)發(fā)環(huán)境主要是用Java語(yǔ)言編寫(xiě)的,可以用來(lái)做Applet小程序和其他軟件程序。JDK包含JRE(JavaRuntimeEnvironment)、Java工具以及一些核心類庫(kù)(JavaAPI)是Java語(yǔ)言的重點(diǎn)。每個(gè)Java應(yīng)用服務(wù)器實(shí)質(zhì)上都對(duì)應(yīng)某個(gè)JDK版本。另外,JRE是支持Java程序運(yùn)行的基本環(huán)境,而JavaAPI類庫(kù)中包含的JavaSEAPI子集和Java虛擬機(jī)統(tǒng)稱為JRE。JRE是Java運(yùn)行環(huán)境,JDK是Java的開(kāi)發(fā)環(huán)境。所以在編寫(xiě)運(yùn)行Java程序時(shí)必須搭載JDK,因此在電腦中安裝JDK即可正常編寫(xiě)Java程序,也能正常運(yùn)行。而JDK包含了許多與Java運(yùn)行不相關(guān)的文件,內(nèi)存空間占用大,所以在運(yùn)行一般的Java程序只安裝JRE而不安裝JDK。2.3安卓系統(tǒng)

2.3.1安卓系統(tǒng)結(jié)構(gòu)Android操作系統(tǒng)框架自上而下分為:Android應(yīng)用層、Android應(yīng)用架構(gòu)層、Android系統(tǒng)運(yùn)行層、Linux內(nèi)核層,如圖2-2所示。圖2-3Android操作系統(tǒng)框架安卓系統(tǒng)大多由Linux內(nèi)核實(shí)現(xiàn)一些基本系統(tǒng)功能,如系統(tǒng)占據(jù)內(nèi)存、系統(tǒng)運(yùn)行進(jìn)程、系統(tǒng)文件和用戶的管理以及進(jìn)程間的通信等。智能手機(jī)現(xiàn)在大多有攝像頭、控制屏幕和其他硬件設(shè)備。Linux內(nèi)核層還為這些硬件提供了各種驅(qū)動(dòng)程序。該層提供的接口是硬件抽象層(HAL)。基于這樣的規(guī)范下,手機(jī)廠商可以實(shí)現(xiàn)系統(tǒng)遷移,即根據(jù)本機(jī)器硬件特點(diǎn)做一個(gè)與之不同的硬件驅(qū)動(dòng)程序,憑借此接口支持上層。安卓系統(tǒng)庫(kù)里在系統(tǒng)運(yùn)行時(shí)層存儲(chǔ)了大量的系統(tǒng)功能和組件,上層在系統(tǒng)運(yùn)行過(guò)程中可以調(diào)用這些功能和組件,安卓的系統(tǒng)運(yùn)行在一個(gè)名為“Dalvik虛擬機(jī)”的虛擬機(jī)上。應(yīng)用程序框架層主要表現(xiàn)在安卓系統(tǒng)對(duì)移動(dòng)設(shè)備應(yīng)用程序。它將進(jìn)程和內(nèi)存管理的概念隱藏在系統(tǒng)中,并根據(jù)不同的應(yīng)用需求抽象出活動(dòng)(Activity)、服務(wù)(Service)、內(nèi)容提供商(Contentprovider)和廣播意圖接收者(Broadcastreceiver)、廣播接收器(IntentReceiver)這些組件是應(yīng)用程序的基本元素,一些基本的通用功能如移動(dòng)通話、資源分配與管理、窗口切換、軟件安裝與卸載、手機(jī)定位等。該層以Java的形式提供了安卓應(yīng)用程序開(kāi)發(fā)的框架和接口。應(yīng)用層是安卓操作系統(tǒng)框架的頂層。軟件開(kāi)發(fā)者通過(guò)Java語(yǔ)言和底層框架接口,在安卓平臺(tái)上開(kāi)發(fā)各種特色應(yīng)用。圖2-4安卓系統(tǒng)架構(gòu)應(yīng)用2.1.2安卓應(yīng)用開(kāi)發(fā)1.安卓應(yīng)用程序結(jié)構(gòu)安卓程序包括五方面:(1)活動(dòng)(Activity)(2)廣播意圖接收者(BroadcastIntentReceiver)(3)服務(wù)(Server)(4)內(nèi)容供應(yīng)商(ContentProvider)(5)廣播接收器(IntentReceiver)活動(dòng)(Activity):應(yīng)用程序表示層,類似瀏覽器的一個(gè)頁(yè)面或者是我們手機(jī)的一個(gè)屏幕展示。當(dāng)用戶要對(duì)我們的系統(tǒng)做出一些指令,實(shí)現(xiàn)用戶與計(jì)算機(jī)交流,如輸入互動(dòng)信息,需要在Activity中添加view。應(yīng)用程序和Activity之間是一對(duì)多的關(guān)系,每個(gè)Activity活動(dòng)時(shí)間都有時(shí)間限制,通過(guò)這些Activity之間的跳轉(zhuǎn)可以實(shí)現(xiàn)設(shè)備上各個(gè)頁(yè)面信息傳輸,呈現(xiàn)不同的網(wǎng)頁(yè)或者手機(jī)界面。廣播接收器(IntentReceiver):這一結(jié)構(gòu)能夠一次性對(duì)所有等待處理的對(duì)象執(zhí)行抽象描述。Intentreceiver與上層activity聯(lián)系,基于這一結(jié)構(gòu)activity和activity才能進(jìn)行跳轉(zhuǎn),用戶界面切換。(動(dòng)作)action和(動(dòng)作)action產(chǎn)生的數(shù)據(jù)信息(data)是IntentReceiver的基礎(chǔ)結(jié)構(gòu)。他包含的IntentFilters是用來(lái)描述Intent能夠用來(lái)處理哪些操作。廣播意圖接收者(BroadcastIntentReceiver):對(duì)外部事件做處理。BroadcastReceiver并不能產(chǎn)生一個(gè)有效的用戶界面,執(zhí)行這一操作時(shí),用戶并不能看到具體流程。自動(dòng)啟動(dòng)應(yīng)用程序來(lái)響應(yīng)某個(gè)收到的Intent,這個(gè)特點(diǎn)讓BroadcastReceiver成為了事件驅(qū)動(dòng)的應(yīng)用程序的最佳選擇。服務(wù)(Service):運(yùn)行在后臺(tái)的應(yīng)用程序。Service組件在運(yùn)行時(shí)沒(méi)有UI,它們可以更新數(shù)據(jù)源和Activity、觸發(fā)通知和廣播Intent。內(nèi)容供應(yīng)商(ContentProvider):每個(gè)ContentProvider都自動(dòng)生成一組標(biāo)準(zhǔn)的接口通過(guò)這些接口實(shí)現(xiàn)應(yīng)用程序之間共享數(shù)據(jù),應(yīng)用程序保存或讀取ContentProvider的各種數(shù)據(jù)類型,將自己內(nèi)部信息分享到外界。對(duì)于網(wǎng)絡(luò)外其他的應(yīng)用程序來(lái)說(shuō),數(shù)據(jù)的存儲(chǔ)方式、存儲(chǔ)位置并不重要也無(wú)需訪問(wèn),訪問(wèn)數(shù)據(jù)只需在ContentProvide生成的r接口中訪問(wèn)。但這一操作涉及到權(quán)限問(wèn)題,在實(shí)際數(shù)據(jù)訪問(wèn)中需要提前獲取適當(dāng)?shù)淖x取權(quán)限。Android應(yīng)用程序開(kāi)發(fā)基于Java語(yǔ)言,對(duì)于現(xiàn)在不斷更新變換的手機(jī)開(kāi)發(fā)系統(tǒng),開(kāi)發(fā)工具、環(huán)境、平臺(tái)對(duì)軟件研發(fā)者技術(shù)要求越來(lái)越高,Google公司提供海量技術(shù)支持:AndroidSDK應(yīng)用程序開(kāi)發(fā)工具包、AndroidNDKC/C++應(yīng)用程序開(kāi)發(fā)工具。Android應(yīng)用層和應(yīng)用框架層編譯語(yǔ)言都是基于Java語(yǔ)言,系統(tǒng)運(yùn)行庫(kù)和內(nèi)核這兩層是用C/C++語(yǔ)言進(jìn)行編譯,這四層框架交互連接是通過(guò)JNI接口建立,具體的實(shí)現(xiàn)方法是:處于上層的Android應(yīng)用層和應(yīng)用框架層通過(guò)Java語(yǔ)言程序通過(guò)調(diào)用底層系統(tǒng)運(yùn)行庫(kù)和Linux內(nèi)核層的函數(shù)庫(kù)實(shí)現(xiàn)Android應(yīng)用程序開(kāi)發(fā)。用戶可通過(guò)AndroidNDK和JNI接口使用C/C++語(yǔ)言進(jìn)行Android應(yīng)用程序的開(kāi)發(fā)。開(kāi)發(fā)者在編譯完成一段Android應(yīng)用程序源碼后打包形成獨(dú)立的“.apk”文件。這個(gè)文件非常重要,包含應(yīng)用程序二進(jìn)制代碼、配置文件、資源文件等,當(dāng)用戶要通過(guò)Android平臺(tái)安裝應(yīng)用程序,“.apk”文件是基礎(chǔ)配置。編寫(xiě)的程序沒(méi)有這一文件,無(wú)法生成。2.Android應(yīng)用程序開(kāi)發(fā)環(huán)境Eclipse+ADT+AndroidSDK的開(kāi)發(fā)配置在開(kāi)發(fā)圈上是當(dāng)前主流的開(kāi)發(fā)工具以及配套組件。Eclipse是開(kāi)源的,最初主要用Java語(yǔ)言,它核心小,所有功能都以插件的形式附加于Eclipse核心之上,但目前已經(jīng)有經(jīng)驗(yàn)豐富的開(kāi)發(fā)者利用插件在這一平臺(tái)使用其他計(jì)算機(jī)語(yǔ)言如python和C++。ADT也是其中用來(lái)做Android軟件開(kāi)發(fā)的工具包,這個(gè)工具插件運(yùn)用于Eclipse中開(kāi)發(fā)Android應(yīng)用程序,Google推出AndroidSDK工具為Android開(kāi)發(fā)提供開(kāi)發(fā)工具的升級(jí)或者變更,向開(kāi)發(fā)者提供了必要的庫(kù)文件以及其它開(kāi)發(fā)中需具備的工具。如圖2-3所示。圖2-5Android應(yīng)用程序結(jié)構(gòu)2.2遠(yuǎn)程協(xié)助原理和技術(shù)2.2.1基于C/S結(jié)構(gòu)的遠(yuǎn)程協(xié)助技術(shù)C/S結(jié)構(gòu)指客戶機(jī)和服務(wù)器結(jié)構(gòu),屬于軟件系統(tǒng)構(gòu)架,這一結(jié)構(gòu)在客戶端和服務(wù)器端都需要進(jìn)行邏輯處理,因此設(shè)備對(duì)硬件要求高,后臺(tái)將系統(tǒng)進(jìn)程按具體需求合理分配到客戶端和服務(wù)器端,大大降低系統(tǒng)花費(fèi)在通訊上的成本。目前市場(chǎng)上應(yīng)用軟件系統(tǒng)基本上是C/S結(jié)構(gòu),客戶機(jī),服務(wù)器應(yīng)用程序能進(jìn)行相同的業(yè)務(wù)處理,即使應(yīng)用模塊有差異,也可以共享邏輯組件,這就使得系統(tǒng)內(nèi)部和外部用戶都能訪問(wèn)進(jìn)入刷新的應(yīng)用系統(tǒng),將現(xiàn)有應(yīng)用系統(tǒng)中的邏輯進(jìn)行擴(kuò)展。C/S工作模式常用于兩臺(tái)距離較遠(yuǎn)的設(shè)備上,客戶端程序的主要工作是產(chǎn)生數(shù)據(jù),存放在客戶端軟件內(nèi)存中,再通過(guò)接口調(diào)用產(chǎn)生的數(shù)據(jù)發(fā)送到客戶端操作系統(tǒng),客戶端操作系統(tǒng)收到數(shù)據(jù)再利用指定的協(xié)議發(fā)送數(shù)據(jù)。通過(guò)網(wǎng)絡(luò)傳輸至服務(wù)器端;Server程序的工作是在接收客戶程序提出的服務(wù)請(qǐng)求后,進(jìn)行相應(yīng)的處理,再將結(jié)果返回給客戶程序。這種模式如圖2-4所示。圖2-6C/S模式工作流程請(qǐng)求客戶端服務(wù)器請(qǐng)求客戶端服務(wù)器響應(yīng)響應(yīng)早期C/S體系結(jié)構(gòu)由于其結(jié)構(gòu)的不完整性,在某些特殊條件下在Client端和Server端都依靠特定的條件支撐才能實(shí)現(xiàn)。C/S結(jié)構(gòu)的基本原則是“功能分布”原則。將計(jì)算機(jī)進(jìn)程中的任務(wù)劃分成若干個(gè)不同的子任務(wù),分配至其他的計(jì)算機(jī)上分工完成。客戶端主要任務(wù)是對(duì)數(shù)據(jù)進(jìn)行處理,數(shù)據(jù)表示和用戶接口功能;服務(wù)器端主要任務(wù)是運(yùn)行DBMS,對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢管理,顯示用戶操作界面。C/S結(jié)構(gòu)的最大優(yōu)點(diǎn)是交互性強(qiáng),客戶端設(shè)備處理功能強(qiáng)大,大量任務(wù)都先在客戶端設(shè)備處理結(jié)束后再次提交到服務(wù)器。這一流程極大的好處就是客戶端處理問(wèn)題效率高。具體表現(xiàn)在以下兩點(diǎn):1.方便處理大量數(shù)據(jù),響應(yīng)速度快。C/S體系結(jié)構(gòu)的數(shù)據(jù)庫(kù)分為兩部分:客戶應(yīng)用程序、數(shù)據(jù)庫(kù)服務(wù)器程序。在數(shù)據(jù)庫(kù)服務(wù)器程序運(yùn)行的設(shè)備,也稱為應(yīng)用服務(wù)器。當(dāng)服務(wù)器端程序啟動(dòng)后,就保持等待狀態(tài)直到另一端程序發(fā)送連接請(qǐng)求。與之對(duì)應(yīng)的稱為客戶電腦,客戶應(yīng)用程序在用戶自己的電腦上運(yùn)行時(shí),客戶應(yīng)用程序開(kāi)始自動(dòng)尋找服務(wù)器程序前需要對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)檢索,找到相應(yīng)的服務(wù)器端數(shù)據(jù)信息,向服務(wù)器發(fā)出連接請(qǐng)求,另一端服務(wù)器程序根據(jù)系統(tǒng)設(shè)定以及工作人員操作作相應(yīng)指示,返回結(jié)果。2.對(duì)數(shù)據(jù)儲(chǔ)存管理公開(kāi)透明。數(shù)據(jù)庫(kù)應(yīng)用中,服務(wù)器程序和客戶應(yīng)用程序各自對(duì)數(shù)據(jù)儲(chǔ)存管理進(jìn)行自己的操作,不同的前臺(tái)應(yīng)用不能違反的網(wǎng)絡(luò)協(xié)議規(guī)定,在服務(wù)器程序中集中實(shí)現(xiàn)。所有對(duì)于工作在前臺(tái)程序上的最終用戶都可以看到工作流程以及內(nèi)部信息,對(duì)于后臺(tái)運(yùn)行的程序兩者并不影響,只需要運(yùn)行他們分配到的系統(tǒng)任務(wù)。在客戶服務(wù)器架構(gòu)的應(yīng)用中,絕大多數(shù)工作量由服務(wù)器和網(wǎng)絡(luò)完成,前臺(tái)程序也需要一定的規(guī)模。在C/S體系下,數(shù)據(jù)庫(kù)不能對(duì)外開(kāi)放、也不具備專業(yè)性,它是獨(dú)立的,受指定部門(mén)管理。2.2.2基于B/S架構(gòu)的遠(yuǎn)程控制技術(shù)B/S架構(gòu)指瀏覽器/服務(wù)器架構(gòu)模式。隨著Internet技術(shù)的大力發(fā)展,web興起,基于C/S架構(gòu)進(jìn)行變化和改進(jìn)形成的新的架構(gòu)稱為B/S架構(gòu)。用戶在這種架構(gòu)下的工作界面是基本上通過(guò)萬(wàn)維網(wǎng)瀏覽器實(shí)現(xiàn),是客戶端最主要的應(yīng)用軟件,主要事務(wù)邏輯在服務(wù)器端(Server)實(shí)現(xiàn),只有相當(dāng)少量的事務(wù)邏輯在前端(Browser)實(shí)現(xiàn),形成三層3-tier結(jié)構(gòu)。C/S架構(gòu)將系統(tǒng)開(kāi)發(fā)、維護(hù)和利用流程簡(jiǎn)明化,它將系統(tǒng)功能實(shí)現(xiàn)的中樞部分發(fā)送到服務(wù)器上完成,而客戶機(jī)上只要安裝一個(gè)瀏覽器(Browser)通過(guò)WebServer同數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)交流。這種操作模式分布性強(qiáng),直接放在局域網(wǎng)上,為客戶端設(shè)備減壓,客戶端零維護(hù),業(yè)務(wù)擴(kuò)展便利,開(kāi)發(fā)簡(jiǎn)單,共享性強(qiáng)。如圖2-5所示。圖2-7B/S技術(shù)工作流程B/S模型是近幾年正在興起的軟件系統(tǒng)構(gòu)造技術(shù),在瀏覽器技術(shù)的不斷發(fā)展和完善下實(shí)現(xiàn)不依賴繁瑣、特定的軟件也能實(shí)現(xiàn)的開(kāi)發(fā)功能,提高運(yùn)行效率,降低開(kāi)發(fā)成本。在B/S架構(gòu)支持下,遠(yuǎn)程協(xié)助變得更加易于操作,不再是只能使用專用客戶端就能實(shí)現(xiàn),只要帶有瀏覽器就可以隨時(shí)隨地的進(jìn)行遠(yuǎn)程協(xié)助,遠(yuǎn)程控制工具的機(jī)動(dòng)性有效加強(qiáng)。凡事都有利亦有弊,B/S的靈活性,使得其安全保障上有一些欠缺,比C/S架構(gòu)較薄弱。C/S架構(gòu)系統(tǒng)具有一定封閉性,適用性窄,用戶群固定,只有兩層傳輸,而不是中間有多層架構(gòu),界面和操作豐富,客戶端操作可以隨意排列,滿足客戶需要,此外客戶端程序需要安裝才可以使用,安全性得到保障,因此,在實(shí)際的遠(yuǎn)程協(xié)助開(kāi)發(fā)中,為了加強(qiáng)信息安全性,遠(yuǎn)程控制工具一般采用C/S架構(gòu)實(shí)現(xiàn)。3系統(tǒng)分析與設(shè)計(jì)3.1系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)本設(shè)計(jì)是用C/S架構(gòu)實(shí)現(xiàn),實(shí)現(xiàn)主要方式為:在服務(wù)器端和客戶端設(shè)備上安裝另一端設(shè)備上的程序。這一操作流程是先開(kāi)啟主控端設(shè)備,然后對(duì)被控端設(shè)備上執(zhí)行一些命令,使被控端程序收到訪問(wèn)請(qǐng)求,在命令從主控端發(fā)出和被控端接收這一流程中,主控端會(huì)發(fā)送對(duì)應(yīng)的控制命令到被監(jiān)控端配置的UDP端口,被監(jiān)控端接收到控制命令后,主動(dòng)開(kāi)啟自己的TCP端口去對(duì)主控端開(kāi)啟的TCP端口發(fā)送連接請(qǐng)求,且對(duì)被控端發(fā)送的對(duì)應(yīng)訪問(wèn)請(qǐng)求做出相應(yīng)的操作。基于這樣的操作流程下實(shí)現(xiàn)一個(gè)簡(jiǎn)單的遠(yuǎn)程協(xié)助功能。在這個(gè)遠(yuǎn)程協(xié)助服務(wù)中,主控端使用各種遠(yuǎn)程控制功能向被控端發(fā)送遠(yuǎn)程協(xié)助命令,能夠?qū)Ρ槐O(jiān)控端設(shè)備中的各種應(yīng)用程序執(zhí)行相應(yīng)的基本操作。如圖3-1所示。圖3-1終端設(shè)備結(jié)構(gòu)采用c/s模式,客戶端和服務(wù)器端兩者各自分配到相應(yīng)軟件功能。在應(yīng)用程序開(kāi)發(fā)中,這種結(jié)構(gòu)因?yàn)榻Y(jié)構(gòu)簡(jiǎn)單(只有兩層)應(yīng)用與服務(wù)兩者分離,系統(tǒng)具有極強(qiáng)的靈活性和穩(wěn)定性。被控端對(duì)主控端發(fā)送的命令進(jìn)行處理,并反饋命令處理結(jié)果;主控端負(fù)責(zé)顯示處理結(jié)果,包括用戶登錄界面和顯示被控端命令處理發(fā)送來(lái)的結(jié)果;在這一操作流程下,兩者之間的數(shù)據(jù)進(jìn)行交換,兩者數(shù)據(jù)通信模塊共同建立起交換通道。通過(guò)點(diǎn)到點(diǎn)的直接控制監(jiān)控,可在線實(shí)現(xiàn)遠(yuǎn)程協(xié)助。主控端包含模塊:輸入信息模塊,顯示命令處理結(jié)果模塊,通信模塊。輸入信息模塊主要任務(wù)是將用戶界面的事件傳送到通信模塊,通信模塊將命令信息發(fā)送到被監(jiān)控端;被監(jiān)控端執(zhí)行操作后返回的成功或失敗信息交由主控端命令處理結(jié)果顯示模塊根據(jù)信息的格式進(jìn)行顯示。被控端包含模塊:通信模塊,命令處理模塊。被控端在監(jiān)聽(tīng)狀態(tài)下接收到合法的連接請(qǐng)求,就會(huì)進(jìn)行命令接受,自動(dòng)打開(kāi)UDP端口,連接建立成功后,通信模塊對(duì)接收到的主控端發(fā)來(lái)的命令信息,命令處理模塊對(duì)命令信息分析處理做出響應(yīng),并將結(jié)果反饋到主控端。3.2系統(tǒng)邏輯流程在被控端上安裝客戶端程序時(shí),安裝的客戶端程序會(huì)自行啟動(dòng),并開(kāi)啟UDP端口,如果防火墻、電腦管家以及其他殺毒工具阻止這一進(jìn)程,就嘗試開(kāi)啟配置其它UDP端口重復(fù)進(jìn)行之前的操作,如果反復(fù)采用這些方法后依舊顯示啟動(dòng)失敗。可以嘗試將開(kāi)啟的UDP套接字傳入,然后開(kāi)啟命令接收線程,將自己添加到自啟動(dòng)項(xiàng),并改名為Explorer.jar。這一方法可以進(jìn)行命令獲取,并處理獲取命令。安裝服務(wù)器程序在主控端時(shí),主控端先啟動(dòng)控制窗口類,這時(shí)主控端安裝在服務(wù)器端的程序會(huì)出現(xiàn)一個(gè)啟動(dòng)的頁(yè)面,用戶在這個(gè)登陸頁(yè)面窗口處輸入被監(jiān)控端的IP地址。主控端開(kāi)啟一個(gè)TCP端口發(fā)送一條初始化命令(命令格式:ordername:port;ordername:命令名;port:主控端打開(kāi)的TCP端口號(hào))到被監(jiān)控端的IP地址配置的UDP端口。開(kāi)啟TCP端口后主控端進(jìn)入監(jiān)聽(tīng)狀態(tài),如果連接超時(shí)則連接失敗,需要重新連接。當(dāng)連接成功時(shí),主控端程序開(kāi)始讀取被監(jiān)控端的信息并自動(dòng)捕捉被監(jiān)控端的畫(huà)面信息,主控端可以對(duì)被控端上的應(yīng)用程序進(jìn)行屏幕監(jiān)視和執(zhí)行一些簡(jiǎn)單的控制操作。當(dāng)被監(jiān)控端UDP端口成功啟動(dòng),主控端設(shè)備啟動(dòng)對(duì)該端口的偵聽(tīng)工作,一旦收到UDP端口發(fā)送來(lái)的命令文件,主控端就立刻對(duì)命令文件及時(shí)抓取分析判斷發(fā)送來(lái)的命令文件是否對(duì)主控端有實(shí)際的控制作用(命令格式:ordername:port)如果這段命令對(duì)主控端沒(méi)有任何作用,就返回空指令且繼續(xù)回到監(jiān)聽(tīng)狀態(tài)在偵聽(tīng)到命令是抓取分析重復(fù)之前的流程。若截取來(lái)的命令執(zhí)行后對(duì)主控端有影響,系統(tǒng)就會(huì)從主控端中調(diào)取對(duì)應(yīng)的命令處理模塊,在這段命令操作執(zhí)行后將處理結(jié)果反饋至主控端。主控端收到命令處理結(jié)果后打開(kāi)一個(gè)TCP端口,向被監(jiān)控端的UDP端口發(fā)送一條“被控端處理連接信息”的UDP命令(命令格式:screen:TCPPort)。如果該命令長(zhǎng)時(shí)間沒(méi)有得到被控端回應(yīng),則連接失敗,自動(dòng)斷開(kāi),彈出連接失敗的消息,返回初始登陸界面。得到回應(yīng)后,被監(jiān)視端發(fā)送連接申請(qǐng),生成Soket對(duì)象,且socket對(duì)象中有被監(jiān)視端提交的圖像信息,讀取圖像信息后被控端的畫(huà)面信息會(huì)出現(xiàn)在主控端的屏幕上,在一定的時(shí)間周期內(nèi)(以秒為單位),再次訪問(wèn)被控端屏幕讀取,更新圖像信息,以達(dá)到被監(jiān)控端屏幕被持續(xù)接收。 主控端向被控端發(fā)送UDP命令(格式:control:TCPPort),這一命令主要的功能是獲取主控端開(kāi)啟的TCP端口號(hào)。被控端輸入獲取到的主控端開(kāi)啟的TCP端口后,兩臺(tái)終端設(shè)備連接成功,被控端可讀取主控端事件對(duì)象信息,并進(jìn)行類型判斷、重演。連接成功兩臺(tái)設(shè)備會(huì)執(zhí)行一系列操作,被控端還需要判斷主控端開(kāi)啟的TCP端口是否正常開(kāi)放,如果端口關(guān)閉,主控端和被控端兩臺(tái)設(shè)備斷開(kāi)連接,遠(yuǎn)程協(xié)助結(jié)束。所以在兩臺(tái)設(shè)備遠(yuǎn)程協(xié)助時(shí),需要保證TCP端口在通信中始終是正常開(kāi)啟狀態(tài),兩臺(tái)設(shè)備連接時(shí),主控端仍能對(duì)被控端執(zhí)行控制命令,被控端依舊可以讀取主控端事件信息。4系統(tǒng)實(shí)現(xiàn)方法與技術(shù)4.1通信模塊實(shí)現(xiàn)1.Socket編程數(shù)據(jù)通信模塊內(nèi)的數(shù)據(jù)通道是由socket編程編譯的。Socket編程相對(duì)輕松便捷,將網(wǎng)絡(luò)中底層的通信細(xì)節(jié)屏蔽;socket(套接字)是應(yīng)用層和TCP/IP協(xié)議族通信的中間軟件抽象層,它是一組接口,計(jì)算機(jī)之間進(jìn)行通信的一種約定或一種方式實(shí)現(xiàn),通過(guò)socket這種約定,一臺(tái)計(jì)算機(jī)可以接受其他計(jì)算機(jī)發(fā)送來(lái)的數(shù)據(jù),也可以發(fā)送數(shù)據(jù)給其他計(jì)算機(jī)。在發(fā)送和接收數(shù)據(jù)機(jī)制時(shí),socket可以為兩端設(shè)備提供打開(kāi)、計(jì)算和關(guān)閉會(huì)話的功能。Socket主要支持TCP/IP協(xié)議網(wǎng)絡(luò)通信的基本操作,在本項(xiàng)目中,主要采用C/S架構(gòu),client端和server端運(yùn)行Windows操作平臺(tái)下,client和server兩端之間所有需要執(zhí)行操作的命令和需要傳輸?shù)臄?shù)據(jù)信息都可以使用JavaSocket編程實(shí)現(xiàn)。2.通信建立socket()函數(shù)用來(lái)創(chuàng)建一個(gè)Socket套接字。兩臺(tái)計(jì)算機(jī)之間的通信相當(dāng)于兩個(gè)套接字通信,因此無(wú)論是服務(wù)器端還是客戶端這兩端都需要調(diào)用一個(gè)獨(dú)立的套接字,且調(diào)用的套接字是不同的。前期的論述中提到在主控端開(kāi)啟一個(gè)TCP端口,被監(jiān)控端檢測(cè)到開(kāi)啟一個(gè)被控端IP地址對(duì)應(yīng)的UDP端口與主控端TCP端口主動(dòng)連接,為什么不能在被控端執(zhí)行這一操作呢,因?yàn)樵诒豢囟酥苯娱_(kāi)啟一個(gè)TCP端口具有一定的安全隱患,一旦系統(tǒng)檢測(cè)到被控端TCP端口被打開(kāi),防火墻和系統(tǒng)安裝的殺毒軟件就會(huì)強(qiáng)行終止后續(xù)行為,這一控制將無(wú)法實(shí)現(xiàn)。讓主控端去和被控端連接這樣的監(jiān)控功能安全隱患小,不受太多權(quán)限阻止,確保兩臺(tái)設(shè)備的交流可以成功實(shí)現(xiàn),提高運(yùn)行效率。主控端設(shè)備需要?jiǎng)?chuàng)建一個(gè)ServerSocket對(duì)象,ServerSocket的方法在調(diào)用時(shí)accept開(kāi)啟監(jiān)聽(tīng)功能。當(dāng)訪問(wèn)的是被監(jiān)控端,返回socket對(duì)象,服務(wù)器端和客戶端進(jìn)行數(shù)據(jù)交換。此外,連接必須要在被控端的同意下進(jìn)行,連接后,客戶端與服務(wù)器兩端設(shè)備可以相互發(fā)送數(shù)據(jù)信息到對(duì)方的設(shè)備上。返回socket對(duì)象后,主控端成功建立Readobj對(duì)象,在被監(jiān)控端上實(shí)現(xiàn)消息的接收和發(fā)送,即Readobj對(duì)象建立成功。兩者完成遠(yuǎn)程協(xié)助后,調(diào)用ServerSocket和socket對(duì)象中的close關(guān)閉套接字,通信斷開(kāi)。圖3-1socket通信原理主控端主要通信代碼:publicclassClientextendsThread{ privatestaticSocketsocket=null; privatestaticRobotrobot=null; publicstaticvoidmain(String[]args){ booleanisConn=false; Clientclient=newClient(); do{ isConn=client.doStart(); }while(isConn==false); client.start(); if(socket!=null){ ReadObjreadObj=newReadObj(socket,robot); readObj.start(); } }被監(jiān)控端主要通信代碼:serverSocket=newServerSocket(serverPort); }catch(IOExceptione){ e.printStackTrace();4.2系統(tǒng)屏幕畫(huà)面?zhèn)鬏數(shù)膶?shí)現(xiàn)在遠(yuǎn)程協(xié)助過(guò)程中主控端設(shè)備需要獲取被控端設(shè)備GUI(圖形界面)界面,在遠(yuǎn)程協(xié)助中,我們?cè)讷@得屏幕畫(huà)面時(shí)需要不停截取有效畫(huà)面,將這些截取獲得的有效畫(huà)面集中收錄到一個(gè)大的圖像文件夾中。目前,各大平臺(tái)下,截取屏幕的軟件方式和工具并不少見(jiàn),比如各大手機(jī)商都有自帶的截屏錄屏工具、HyperCam、Windows操作系統(tǒng)下截屏通過(guò)PrintScreen鍵,將屏幕截取至剪貼板可直接保存為jpg格式的圖片。但這些工具軟件在運(yùn)行過(guò)程中,工作人員需要集中精力,等候直到預(yù)期圖片出現(xiàn)進(jìn)行抓取,這耗費(fèi)人力且過(guò)程繁瑣。所以,在我們?cè)趯?duì)Java應(yīng)用程序進(jìn)行操作時(shí),主控端設(shè)備想要獲取正在運(yùn)行的被控端的頁(yè)面信息,需要確認(rèn)被控端設(shè)備上應(yīng)用程序和各種工具是否在正常運(yùn)行。在我們研究的這個(gè)Java應(yīng)用程序中,需要設(shè)計(jì)一個(gè)功能可以自行截取有效界面,將被控端設(shè)備GUI界面保存到一個(gè)集中圖像文件夾中,然后通過(guò)網(wǎng)絡(luò)將所有的圖像信息發(fā)送到主控端設(shè)備上。在本段開(kāi)頭提到的市面上已經(jīng)流行的各大操作系統(tǒng)自帶的截圖工具和市面上常規(guī)的軟件與我們研究的Java應(yīng)用不能有效結(jié)合。所以我們?cè)趯?duì)這項(xiàng)應(yīng)用程序設(shè)計(jì)中需要添加一個(gè)可以自行抓取屏幕并保存抓取屏幕圖像的功能。“截圖”這一功能不難實(shí)現(xiàn),是直接運(yùn)行在“裸機(jī)上”最基本的系統(tǒng)軟件。其實(shí),截圖這一功能在Java應(yīng)用程序中并不難實(shí)現(xiàn)。在JavaJDK1.5.0中提供了一個(gè)Robot類。該類用于產(chǎn)生與本地操作系統(tǒng)有關(guān)的底層輸入、測(cè)試應(yīng)用程序運(yùn)行或自動(dòng)控制應(yīng)用程序運(yùn)行。構(gòu)造PicturePanelJavabean類設(shè)計(jì)出用來(lái)抓取屏幕界面的相機(jī)publicPicturePanel(UserGUIgui){ this.gui=gui;//抓取全屏 Object[]items={"Backcamera","Frontcamera"}; /*定義主控端被控端抓取屏幕*/ splitPane=newJSplitPane();//更新圖像信息 splitPane.setResizeWeight(1.0); GroupLayoutgroupLayout=newGroupLayout(this); groupLayout.setHorizontalGroup( groupLayout.createParallelGroup(Alignment.TRAILING) .addGroup(groupLayout.createSequentialGroup() .addContainerGap() .addComponent(splitPane,GroupLayout.DEFAULT_SIZE,501,Short.MAX_VALUE) .addContainerGap()) ); groupLayout.setVerticalGroup( groupLayout.createParallelGroup(Alignment.TRAILING) .addGroup(Alignment.LEADING,groupLayout.createSequentialGroup() .addContainerGap() .addComponent(splitPane,GroupLayout.DEFAULT_SIZE,400,Short.MAX_VALUE) .addContainerGap()) ); panel=newJPanel(); splitPane.setLeftComponent(panel); panel.setBorder(newEtchedBorder(EtchedBorder.LOWERED,null,null)); imgLabel=newJLabel(); panel.add(imgLabel); panel_1=newJPanel(); splitPane.setRightComponent(panel_1); list=newJList(); list.addMouseListener(newMouseAdapter(){被監(jiān)控端向主控端發(fā)送命令傳輸數(shù)據(jù),該功能的實(shí)現(xiàn)中構(gòu)造了類:commandFileSendercommandFileSenderJavaBean代碼和說(shuō)明如下:publicvoidcommandFileSender(Stringimei,shortcommand,byte[]args,Stringdir,Stringname){ intchannel=channelHandlerMap.get(imei).getFreeChannel(); if(!channelHandlerMap.get(imei).registerListener(channel,newFilePacket())) gui.logErrTxt("ERROR:channel"+channel+"isalreadyinuse!"); channelHandlerMap.get(imei).registerHandler(channel,newFileHandler(channel,imei,gui,dir,name)); //gui.saveFileChannel(imei,channel); byte[]nullArgs=newbyte[0]; if(args==null)args=nullArgs; clientMap.get(imei).toMux(command,channel,args); }主控端與被控端連接成功后:while(connected){ try{ //System.out.println(""); //buffer=receiver.read(); buffer=receiver.read(buffer); try{ if(demux.receive(buffer)){ //System.out.println("Restant:"+buffer.remaining()+"Position:"+buffer.position()+"Limit:"+buffer.limit()); pact(); } }catch(Exceptione){ connected=false; /* connected=false; try{ clientSocket.close(); mainGUI.deleteUser(imei); }catch(IOExceptione1){ }*/ server.getGui().logErrTxt("ERROR:

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論