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

正文內(nèi)容

基于android的ftp文件傳輸畢業(yè)論文(編輯修改稿)

2024-07-25 00:42 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 cted socket)。 return 2。 } TCP連接監(jiān)聽(tīng)如果的TcpListener線程在接受時(shí)被阻塞,關(guān)閉socket將引發(fā)一個(gè)異常public void quit() { try { ()。 } catch (Exception e) { (, Exception closing TcpListener listenSocket)。 } }監(jiān)聽(tīng)到客戶端連接請(qǐng)求public void run() { try { while(true) { Socket clientSocket = ()。 (, New connection, spawned thread)。 SessionThread newSession = new SessionThread(clientSocket, new NormalDataSocketFactory(), )。 ()。 (newSession)。 } } catch (Exception e) { (, Exception in TcpListener)。 } }: 程序運(yùn)行效果圖 第6章 系統(tǒng)實(shí)現(xiàn) Server端模塊的設(shè)計(jì)Server端啟動(dòng)的時(shí)候,會(huì)加入到一個(gè)組播地址中,然后初始化Socket,對(duì)規(guī)定的端口進(jìn)行偵聽(tīng)。當(dāng)請(qǐng)求連接的報(bào)文到來(lái)時(shí),performAuthentication會(huì)對(duì)用戶的合法性進(jìn)行驗(yàn)證,Server端向手機(jī)端發(fā)送一個(gè)驗(yàn)證包,等待手機(jī)端的響應(yīng);當(dāng)收到的響應(yīng)報(bào)文數(shù)據(jù)與預(yù)期的數(shù)據(jù)相等時(shí),驗(yàn)證通過(guò),否則拒絕連接。連接成功后,會(huì)解析到的報(bào)文。由handldReceiveData類處理收到的不同命令,并且發(fā)送SendPacket與客戶端進(jìn)行交互。為了提高程序的響應(yīng)速度,多處使用子線程,這樣異步處理各種不同事件,避免了事件之間的盲等。當(dāng)前沒(méi)有處理任務(wù)時(shí)可將處理器時(shí)間讓給其他任務(wù),占用大量處理器時(shí)間的任務(wù)可以定期將處理器時(shí)間讓給其他任務(wù),并可隨時(shí)停止某個(gè)任務(wù),設(shè)置各個(gè)任務(wù)的優(yōu)先級(jí),以此優(yōu)化性能,提高了程序的運(yùn)行效率,減少了服務(wù)器的響應(yīng)時(shí)間,提高了CPU和網(wǎng)絡(luò)I/O的利用率。Public synchronized void handleReceiveDeta(AbstractPacket packet, TcpConneetion connection){ (Receivedmand:+())。 Command mand = ()。 if(mand == ) { retumPacket=null。 } else if(() == ){ if(mand==Command.CLOSE){ ... } } else if(mand == ){ (powerOn)。 } else if(mand==Command.STOP){ ... } } Android設(shè)備端模塊的設(shè)計(jì)當(dāng)手機(jī)啟動(dòng)控制模塊時(shí),會(huì)新建一個(gè)線程。此線程內(nèi),首先會(huì)創(chuàng)建一個(gè)Socket,建立一個(gè)控制連接到代理服務(wù)器,隨時(shí)等待客戶端請(qǐng)求連接的命令到來(lái)。當(dāng)客戶端訪問(wèn)ftp請(qǐng)求時(shí),向代理發(fā)送連接命令,代理通過(guò)控制連接向Android設(shè)備發(fā)送命令。當(dāng)手機(jī)接收到消息后,啟動(dòng)身份驗(yàn)證機(jī)制,進(jìn)一步對(duì)客戶端做出應(yīng)答。Android端通過(guò)CommandControl類與Server進(jìn)行消息的傳遞,它本身接受本地網(wǎng)絡(luò)、遠(yuǎn)程網(wǎng)絡(luò)信息兩個(gè)參數(shù),每次TCP連接都會(huì)新建一個(gè)TcpClient類對(duì)象,TcpClient類對(duì)象封裝了TCP連接,設(shè)有監(jiān)聽(tīng)器netDataRecieved方法,對(duì)報(bào)文進(jìn)行響應(yīng)處理。其中CommandControl類定義了一組請(qǐng)求操作,包括USER命令、LIST命令等。為了減少資源占用,CommandContwl采用單例的形式,只與一個(gè)Server進(jìn)行通信。當(dāng)嘗試與新的Server進(jìn)行通信時(shí),CommandControl會(huì)關(guān)閉之前的連接,網(wǎng)絡(luò)具有很大的吞吐量。多處使用子線程處理界面控件和耗時(shí)的操作。這樣用戶在與Server進(jìn)行交互的同時(shí),還可以進(jìn)行本地的操作,系統(tǒng)被阻塞的時(shí)間很短。public int onPasv() { clearState()。 proxyConnector = ()。 if(proxyConnector == null) { (, Unexpected null proxyConnector in onPasv)。 clearState()。 return 0。 } ProxyDataSocketInfo info = ()。 if(info == null) { (, Null ProxyDataSocketInfo)。 clearState()。 return 0。 } socket = ()。 proxyListenPort = ()。 return proxyListenPort。 }public boolean onPort(InetAddress dest, int port) { clearState()。 proxyConnector = ()。 = dest。 = port。 (ProxyDataSocketFactory client port settings stored)。 return true。 }public Socket onTransfer() { if(proxyConnector == null) { (Unexpected null proxyConnector in onTransfer)。 return null。 } if(socket == null) { // We are in PORT mode (not PASV mode) if(proxyConnector == null) { (, Unexpected null proxyConnector in onTransfer)。 return null。 } // May return null, that39。s fine. ProxyConnector will log errors. socket = (clientAddress, clientPort)。 return socket。 } else { // We are in PASV mode (not PORT mode) if((socket)) { return socket。 } else { (proxyConnector pasvAccept failed)。 return null。 } } } 第7章 系統(tǒng)測(cè)試 Android手機(jī)系統(tǒng)測(cè)試之打斷事件Android手機(jī)提供的打斷事件與以往手機(jī)有著一些機(jī)制上的不同,當(dāng)然也有很多跟以前一樣的機(jī)制。所以我們要從他的應(yīng)用程序打斷機(jī)理出發(fā),定制本系統(tǒng)的系統(tǒng)測(cè)試用例的打斷事件。打斷事件一般分為系統(tǒng)基本打斷事件;Back鍵;改變手機(jī)方向;長(zhǎng)按Home鍵,切換應(yīng)用程序;內(nèi)容沖突檢測(cè)(content provider);長(zhǎng)按Power鍵,調(diào)出關(guān)機(jī)窗口;Home鍵回home app,當(dāng)前測(cè)試的應(yīng)用就會(huì)放到后臺(tái)處于stop狀態(tài)。如果想監(jiān)控到Activity生命周期的變化,必然會(huì)在Create或Start等處有代碼來(lái)進(jìn)行處理。在startActivityForResu函數(shù)中,()一句讓我們看到至少有一個(gè)mInstrumentation的對(duì)象受委托在啟動(dòng)Activity,這個(gè)委托是有可能加入監(jiān)控動(dòng)作的。public void startActivityForResult(Intent intent, int requestCode) { ........}在以perform開(kāi)頭的幾個(gè)函數(shù)中,本系統(tǒng)再次發(fā)現(xiàn)了對(duì)mInstrumentation對(duì)象的調(diào)用。例如performStart()函數(shù)。final void performStart(){ ...........}該類的接口主要有以下幾類:對(duì)Activity監(jiān)控對(duì)象的處理接口,Activity狀態(tài)改變時(shí)的回調(diào)通知接口,生成Activity和Application的接口,向Activity發(fā)送事件通知的接口,性能處理的接口等。 測(cè)試中發(fā)現(xiàn)的問(wèn)題及修復(fù)在測(cè)試時(shí)發(fā)現(xiàn)調(diào)用無(wú)線數(shù)據(jù)傳輸方法后程序崩潰,:usespermission android:name=/usespermissionusespermission android:name=/usespermissionusespermission android:name= /usespermission android:name=/usespermission 測(cè)試結(jié)果 開(kāi)啟服務(wù): 開(kāi)啟服務(wù)logcat圖 客戶端訪問(wèn)ftp地址: 客戶端訪問(wèn)ftp地址logcat圖 登陸驗(yàn)證輸入用戶名密碼登陸后,: 登陸驗(yàn)證logcat圖結(jié)論由于Android設(shè)備不能夠接受入站連接,但它可以自由創(chuàng)建出站連接。因此Android設(shè)備上建立永久保持一個(gè)TCP連接到代理服務(wù)器。我們稱之為“命令連接”。在本課題中,利用代理服務(wù)系統(tǒng)作為Pc和Android手機(jī)的中介信使,解決了Android手機(jī)的入站連接限制。當(dāng)FTP客戶端希望通過(guò)代理連接,它啟動(dòng)一個(gè)正常的FTP連接到代理服務(wù)器。代理通知本應(yīng)用程序有一個(gè)即將到來(lái)的FTP會(huì)話等待被建立。 本應(yīng)用程序建立另一個(gè)TCP連接到代理(除了現(xiàn)有的控制連接),這個(gè)連接將被用于專門從FTP客戶端發(fā)送和接收數(shù)據(jù)。從而實(shí)現(xiàn)了任意客戶端可以登錄FTP服務(wù)器上傳下載文件,實(shí)現(xiàn)無(wú)需數(shù)據(jù)線即可管理手機(jī)的功能。該應(yīng)用程序功能實(shí)用,輕便小巧,是一款優(yōu)秀的Android工具類應(yīng)用。界面簡(jiǎn)潔友好,操作簡(jiǎn)單,附帶使用說(shuō)明。除此之外還存在一些不足之處,例如服務(wù)端的驗(yàn)證機(jī)制的安全性不是很高,只適合于個(gè)人使用,使用完畢后盡快關(guān)閉服務(wù)以防個(gè)人隱私資料的丟失。通過(guò)本次畢業(yè)設(shè)計(jì)我學(xué)到了不少新的專業(yè)知識(shí)。學(xué)會(huì)了如何查找文獻(xiàn),如何利用網(wǎng)絡(luò)資源解決實(shí)際問(wèn)題。在查閱一些Android專業(yè)論壇以及博客的過(guò)程中,發(fā)現(xiàn)開(kāi)發(fā)應(yīng)用軟件時(shí)要善于借鑒前人的經(jīng)驗(yàn)參考既有代碼,避免“重復(fù)制造輪子”。參考文獻(xiàn)[1] 姚昱旻,劉衛(wèi)國(guó). Android的架構(gòu)與應(yīng)用開(kāi)發(fā)研究[J]. 計(jì)算機(jī)系統(tǒng)用,2008,11.[2] 周毅敏,[J].計(jì)算機(jī)技術(shù)展,2010,20(2):83.[3] [D].西安:西安電子科技大學(xué)大學(xué), 2009.[4] [EB/OL].,20120906.[5] 張鵬. Eclipse插件開(kāi)發(fā)學(xué)習(xí)筆記[Z]. 北京:電子工業(yè)出版社,2008.[6] [D].湖南:湖南師范大 學(xué),2009.[7] [D].廣東:暨南大學(xué),2010.[8] Satya Komatineni,Dave Android 3[M].American:Daniel W. Lewis Komatineni,2011.[9] W Enck, M Ongtang, P android security[J].Security amp。 Privacy,2009,32(1):5057.[10] M Ongtang,S McLaughlin,W Enck. Android permissions demystified[J. Proceedings of the 18th ACM conference on Computer and munications security,2011,34(1):627638.[11] [EB/OL].[12] Android平臺(tái)的應(yīng)用程序開(kāi)發(fā)與研究[J].電腦知識(shí)與 技術(shù),2009, 5(28):5057.[13] 趙亮,[J].電腦知識(shí)與技術(shù),2009, 5(29).[14] 耿東久,索岳,陳渝,文軍, 系統(tǒng) [J].計(jì)算機(jī)應(yīng)用,2011,32(2):5057.[15] 雷麗暉,[J].計(jì) 算機(jī)學(xué)報(bào),2005,28(4):635643. 附錄附錄A 文件傳輸協(xié)議簡(jiǎn)介文件傳輸協(xié)議(英文:File Transfer Protocol,縮寫(xiě):FTP)是用于在網(wǎng)絡(luò)上進(jìn)行文件傳輸?shù)囊惶讟?biāo)準(zhǔn)協(xié)議。它屬于網(wǎng)絡(luò)傳輸協(xié)議的應(yīng)用層。FTP是一個(gè)8位的客戶端服務(wù)器協(xié)議,能操作任何類型的文件而不需要進(jìn)一步處理,就像MIME或Unicode一樣。但是,F(xiàn)TP有著極高的延時(shí),這意味著,從開(kāi)始請(qǐng)求到第一次接收需求數(shù)據(jù)之間的時(shí)間,會(huì)非常長(zhǎng);并且不時(shí)的必須執(zhí)行一些冗長(zhǎng)的登陸進(jìn)程。FTP服務(wù)一般運(yùn)行在20和21兩個(gè)端口。端口21用于在客戶端和服務(wù)器之間傳輸數(shù)據(jù)流,而端口20用于傳輸控制流,并且是命令通向ftp服務(wù)器的進(jìn)口。當(dāng)數(shù)據(jù)通過(guò)數(shù)據(jù)流傳輸時(shí),控制流處于空閑狀態(tài)。而當(dāng)控制流空閑很長(zhǎng)時(shí)間后,客戶端的防火墻會(huì)將其會(huì)話置為超時(shí),這樣當(dāng)大量數(shù)據(jù)通過(guò)防火墻時(shí),會(huì)
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1