版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 本科畢業(yè)設(shè)計</b></p><p><b> ?。?0 屆)</b></p><p> 基于Socket技術(shù)的Windows Mobile設(shè)備間的文件傳輸工具開發(fā)</p><p> 所在學(xué)院 </p><p&g
2、t; 專業(yè)班級 電子信息工程 </p><p> 學(xué)生姓名 學(xué)號 </p><p> 指導(dǎo)教師 職稱 </p><p> 完成日期 年 月 </p><p><b&
3、gt; 摘 要</b></p><p> 在網(wǎng)絡(luò)通信中,Socket技術(shù)是發(fā)送端到達(dá)接收端的一個有效途徑,在網(wǎng)絡(luò)傳輸層上建立通信關(guān)系,實現(xiàn)數(shù)據(jù)交互的接口。由于網(wǎng)絡(luò)通信的復(fù)雜性,在建立通信關(guān)系的前提下,必須引進(jìn)線程機(jī)制處理通信細(xì)節(jié),以確保各節(jié)點通訊的獨立和并發(fā)。在Windows Mobile設(shè)備上實現(xiàn)基于Socket的文件傳輸,必須深入理解線程的處理技巧,同時將其靈活運(yùn)用到通信網(wǎng)絡(luò)編程中,完成文件
4、傳輸?shù)墓δ堋1菊n題首先介紹了Socket技術(shù)的原理,通過Socket技術(shù),線程技術(shù)和網(wǎng)絡(luò)通信方面內(nèi)容,聯(lián)系到Windows Mobile,在Visual Studio 2008開發(fā)環(huán)境中進(jìn)行應(yīng)用程序開發(fā),通過運(yùn)用Socket技術(shù),實現(xiàn)目標(biāo)。</p><p> 本文研究并實現(xiàn)了Windows Mobile下的套接字連接和手機(jī)之間數(shù)據(jù)傳輸?shù)炔僮?。主要詳?xì)講解了Windows Mobile下套接字的體系結(jié)構(gòu)與核心功能
5、類等必要的知識脈絡(luò);對主機(jī)域名解析服務(wù)與網(wǎng)絡(luò)接入點相關(guān)操作技術(shù)做了進(jìn)一步的了解和研究,并詳細(xì)分析了Windows Mobile下的套接字連接的操作實現(xiàn);最后在介紹了PC端的套接字連接相關(guān)知識的基礎(chǔ)上,結(jié)合PC端套接字操作的程序流程,用代碼實現(xiàn)系統(tǒng)數(shù)據(jù)傳輸,驗證了研究的正確性,方向性和可靠性。并為手機(jī)間文件的相互傳輸提供了一個很好的服務(wù)平臺。</p><p> 關(guān)鍵詞:套接字;線程;網(wǎng)絡(luò)通信;文件傳輸</p
6、><p><b> Abstract</b></p><p> In Network Communication, Socket identified an effective way from the sender to the receiver, to establish communications upon the transport layer and to
7、 implement the interface for data interaction. Because of the complexity of network communications, in order to establish communications, we must introduce thread mechanism processing communication detail to ensure the i
8、ndependence of each node. In order to implement file transferring based on Socket in Windows Mobile devices, we must have a dee</p><p> By the means of researching, it has been implemented to connect by Soc
9、ket and transfer data. In this paper, it is mainly explained in details about the socket in Windows Mobile Architecture and basic knowledge of the core functional classes, etc.; it has in-depth research and development a
10、bout the host domain name resolution services and the operations of the network access point technology. Then it has analyzed in details on Windows Mobile realization of the socket connection; finally it has in</p>
11、<p> Keywords: Socket; thread; network communication; file transfer</p><p><b> 目 錄</b></p><p><b> 1 引言1</b></p><p> 1.1 研究背景1</p><p&
12、gt; 1.2 研究內(nèi)容2</p><p> 1.3 研究現(xiàn)狀2</p><p> 2 Socket技術(shù)及其線程通信3</p><p> 2.1 Socket技術(shù)簡析3</p><p> 2.2 Socket的分類4</p><p><b> 2.3線程原理7</b><
13、;/p><p> 2.4 網(wǎng)絡(luò)通信原理9</p><p> 3 Socket應(yīng)用程序開發(fā)11</p><p> 3.1 Windows Mobile簡介11</p><p> 3.2 Visual Studio 開發(fā)環(huán)境介紹11</p><p> 3.3 網(wǎng)絡(luò)連接的建立12</p><
14、;p> 3.4.設(shè)備間的文件傳輸開發(fā)15</p><p> 3.4.1 新建工程15</p><p> 3.4.2 服務(wù)器端16</p><p> 3.4.3 客戶端17</p><p> 3.4.4 應(yīng)用程序測試18</p><p><b> 4 結(jié)論21</b>&
15、lt;/p><p> 致 謝錯誤!未定義書簽。</p><p><b> 參考文獻(xiàn)22</b></p><p> 附錄:應(yīng)用程序源代碼24</p><p><b> 1 引言</b></p><p> Socket編程技術(shù)作為進(jìn)程問通信的常用技術(shù),以其能夠靈活定
16、制包格式、靈活構(gòu)造高效通信服務(wù)等優(yōu)勢成為構(gòu)建基于TCP/IP協(xié)議的網(wǎng)絡(luò)應(yīng)用程序時最常用的開發(fā)技術(shù)之一。由于開發(fā)基于Socket通信的網(wǎng)絡(luò)應(yīng)用程序時不必關(guān)心Socket通信部分的平臺移植問題、Socket通信問題等一系列兼容性問題,可以直接構(gòu)造應(yīng)用,從而大大加快開發(fā)進(jìn)度[1]。</p><p> 目前還沒有一個解決兼容性的問題開放式框架,可用于構(gòu)建基于Socket通信應(yīng)用為基礎(chǔ)的網(wǎng)絡(luò),而建立UDP服務(wù)器,客戶端的
17、TCP長連接往往是建立Socket技術(shù)的應(yīng)用程序的關(guān)鍵所在。因此,建立一個支持多個TCP和UDP服務(wù)器,多個TCP長連接的客戶端Socket通信框架對于大力加快項目開發(fā)進(jìn)度,降低了移植代碼的困難具有重大意義。</p><p><b> 1.1 研究背景</b></p><p> 在早期,一個加利福尼亞大學(xué)的一個分校研究組,讓他們將TCP/IP軟件移植到UNIX操作
18、系統(tǒng)中,并將結(jié)果提供給其他網(wǎng)點。他們創(chuàng)建了一個接口,應(yīng)用程序可以通過這借口進(jìn)行通信。并且他們認(rèn)為只要有可能就使用以有的系統(tǒng)調(diào)用,對那些不能快速升級到已有函數(shù)集的情況,就再增加新的系統(tǒng)調(diào)用以支持TCP/IP功能。這樣做的結(jié)果就出現(xiàn)了插口接口(Berkeley Socket),這個系統(tǒng)被稱為Berkeley UNIX或BSD UNIX。TCP/IP 首次出現(xiàn)在BSD 4.1 版本release 4.1 of Berkeley Softwar
19、e Distribution。由于很多計算機(jī)商人都采用了Berkeley UNIX,因此,Socket接口被廣泛使用,也成了現(xiàn)在的標(biāo)準(zhǔn)。</p><p> Socket的英文原意就是“孔”或“插座”,現(xiàn)在,作為BSD UNIX的進(jìn)程通訊機(jī)制,取其后一種意義。表面意義為,通信間需要一個Scoket作為兩者之間的媒介。</p><p><b> 1.2 研究內(nèi)容</b>
20、;</p><p> 一般情況下,用戶都會使用Windows Mobile設(shè)備上的WiFi模塊來接入Access Node,以達(dá)到交互的目的。但是如果在沒有Access Node的情況下,同樣也可以利用WiFi來建立設(shè)備與設(shè)備之間的連接,這就是所謂的Ad-hoc網(wǎng)絡(luò)。本課題要求學(xué)生理解Socket網(wǎng)絡(luò)編程的基本原理,研究如何在Windows Mobile設(shè)備上實現(xiàn)基于Socket的文件傳輸,并通過Visual
21、Studio 2008進(jìn)行軟件開發(fā)。</p><p><b> 研究內(nèi)容主要包括:</b></p><p> 1. 利用WiFi建立設(shè)備連接,為設(shè)備之間的文件傳輸提供前提;</p><p> 2. 設(shè)備連接后,編寫客戶端和服務(wù)器端的兩個應(yīng)用程序,并進(jìn)行設(shè)置;</p><p> 3. 設(shè)置完成后,Windows M
22、obile設(shè)備之間利用Socket來實現(xiàn)消息的實時發(fā)送與接收,以完成設(shè)備之間的文件傳輸?shù)哪康摹?lt;/p><p><b> 1.3 研究現(xiàn)狀</b></p><p> 網(wǎng)絡(luò)通信技術(shù)隨著應(yīng)用需求的巨大增長而迅速發(fā)展著。目前,許多通信手段滿足不了需求劇增的們,對于開發(fā)新的通信技術(shù)顯得尤為重要。而Socket技術(shù)作為IT網(wǎng)絡(luò)一個不可或缺和占主要地位的一部分。從80年代的早
23、期起步到如今的成熟,Socket技術(shù)也更加的重要了,許多的IT領(lǐng)域都離不開Socket技術(shù)。如今世界在發(fā)展,科技在進(jìn)步,網(wǎng)絡(luò)更是日新月異,因此,Socket技術(shù)也會更加的發(fā)展,更加的體現(xiàn)了Socket的含金量。</p><p> 2 Socket技術(shù)及其線程通信</p><p> 本章講述Socket技術(shù)的含義,提出Socket的原題,在本課題中的用處,以及線程技術(shù)的原理與含義。<
24、;/p><p> 2.1 Socket技術(shù)簡析</p><p> 應(yīng)用層通過傳輸層進(jìn)行數(shù)據(jù)通信和信息交互時,會出現(xiàn)TCP和UDP同時遇到為多個應(yīng)用程序進(jìn)程提供并發(fā)服務(wù)的問題。而且多個應(yīng)用程序進(jìn)程可能需要通過同一個TCP協(xié)議端口傳輸數(shù)據(jù)。因此為了區(qū)別不同的應(yīng)用程序進(jìn)程和連接,許多計算機(jī)操作系統(tǒng)為應(yīng)用程序與TCP/IP協(xié)議交互提供了稱為套接字(Socket)的接口,區(qū)分來自不同應(yīng)用程序進(jìn)程間的
25、網(wǎng)絡(luò)通信和連接請求。</p><p> 通信的目的IP地址、使用的端口號和使用的傳輸層協(xié)議(TCP或UDP)是生成套接字主要3個參數(shù)。通過將這3個參數(shù)結(jié)合起來,與一個Socket綁定,應(yīng)用層就可以和傳輸層通過套接字接口,實現(xiàn)數(shù)據(jù)傳輸?shù)牟l(fā)服務(wù)[2]。</p><p> Socket可以看成在兩個程序進(jìn)行通訊連接中的一個端口,一個程序?qū)⒁欢涡畔懭隨ocket中,該Socket將這段信息
26、發(fā)送給另外一個Socket中,使這段信息能傳送到其他程序中,實現(xiàn)數(shù)據(jù)傳輸。如圖2-1所示。</p><p> Socket (網(wǎng)絡(luò)接口卡) Socket</p><p> Program A Program B</p><
27、;p><b> 網(wǎng)絡(luò)管理軟件</b></p><p> 圖2-1 Socket傳輸示意圖</p><p> 在Linux中的網(wǎng)絡(luò)編程通過Socket接口進(jìn)行,是一種特殊的文字描述符。Socket是使用標(biāo)準(zhǔn)Linux文件符(file descriptor)和其他程序通信的方式。在這里Socket編程采用客戶端/服務(wù)器模式,如下圖2-2所示。</p&g
28、t;<p> 圖2-2 Socket客戶端/服務(wù)器模式 </p><p> Socket是網(wǎng)絡(luò)傳輸層供給應(yīng)用層的編程接口,是一個數(shù)據(jù)交互的轉(zhuǎn)接點。而傳輸層則在網(wǎng)絡(luò)層的基礎(chǔ)上提供進(jìn)程與進(jìn)程間的邏輯通道,應(yīng)用層的進(jìn)程則需要利用傳輸層向另一臺主機(jī)的某一進(jìn)程通信,從而達(dá)到信息交互。</p><p> Socket編程對客戶端和服務(wù)器應(yīng)用程序進(jìn)行開發(fā)研究,以便它可以在本地網(wǎng)絡(luò)上進(jìn)
29、行通信,還可以通過互聯(lián)網(wǎng)在世界各地進(jìn)行交流。Scoket編寫并運(yùn)行客戶端和服務(wù)器程序,雙方通過建立一個套接字,并通過多種方式提高性能的socket數(shù)[2]。</p><p> 2.2 Socket的分類</p><p> 常見的Socket有3種類型。</p><p> ?。?)流式套接字(SOCK_STREAM):提供可靠的通信流量,采用面向連接的TCP協(xié)議,
30、以確保數(shù)據(jù)傳輸?shù)臏?zhǔn)確性和順序。</p><p> ?。?)原始套接字(SOCK_RAM):允許直接訪問底層協(xié)議,功能強(qiáng)大,但不太方便使用,主要用于一些協(xié)議的開發(fā)。</p><p> ?。?)數(shù)據(jù)報套接字(為SOCK_DGRAM):通過獨立傳輸?shù)臄?shù)據(jù)包,是無序的,不保證可靠,無差錯,它定義了一個連接為導(dǎo)向的服務(wù),使用數(shù)據(jù)報協(xié)議UDP。</p><p> Socket
31、編程使用客戶機(jī)/服務(wù)器模式。因此,分為服務(wù)器端編程和客戶端編程兩部分。每一個Scoket用一個半相關(guān)(協(xié)議,本地地址,端口)來表示,Scoket也有一個功能類似于打開文件的函數(shù),該函數(shù)返回一個整數(shù)socket描述符,通過Scoket建立數(shù)據(jù)傳輸來實現(xiàn)目的。其流程圖如下圖2-3所示。</p><p><b> 服務(wù)器端</b></p><p> 客戶端
32、 </p><p> 圖2-3 客戶端/服務(wù)器Socket通信流程圖</p><p> 服務(wù)器端完成的功能是:處理某一可用端請求。因為是多客戶,所以采用多線程,為每一個在線用戶分配一個客戶線程,實時處理每一個客戶的實時請求。</p><p> 服務(wù)器結(jié)構(gòu)如圖2-4所示。</p>
33、<p><b> 通訊</b></p><p> 線程a 客戶a</p><p> 線程b 客戶a</p><p> 線程c
34、 客戶a</p><p><b> 申請連接</b></p><p><b> 服務(wù)器程序 </b></p><p> 圖2-4 服務(wù)器系統(tǒng)結(jié)構(gòu)圖</p><p> (1)客戶端代理類(Agent):此類存儲對應(yīng)
35、客戶端的數(shù)據(jù),其包括登錄用戶名、Socket、互斥鎖(mutex)等。該Socket對象構(gòu)造一個輸入in和一個輸出流out,客戶代理通過這一對輸入輸出流與客戶端的Socket進(jìn)行數(shù)據(jù)交互。</p><p> ?。?)服務(wù)監(jiān)聽器(ServerSocket):由主程序啟動,監(jiān)聽服務(wù)器的服務(wù)端口,為每一個請求連接的客戶端建立一個客戶代理線程。</p><p> ?。?)客戶代理線程(AgentT
36、hread):實時通過監(jiān)聽客戶端的事務(wù)請求,按照“對話流程”進(jìn)行解碼,根據(jù)解析得到的事務(wù)類型,交給客戶事務(wù)處理模塊進(jìn)行具體處理。</p><p> (4)客戶事務(wù)處理(Processor):處理客戶的事務(wù)請求。根據(jù)客戶的請求執(zhí)行相應(yīng)的數(shù)據(jù)處理和操作。通過引用用戶列表中的客戶代理發(fā)送消息。事務(wù)處理模塊引用客戶代理對象時,必須進(jìn)行申請操作(wait()),之后釋放資源。改模塊根據(jù)事務(wù)類型,進(jìn)行轉(zhuǎn)發(fā)信息、注冊用戶、注
37、銷用戶。</p><p> ?。?)用戶列表(Vector):存儲每一個登錄客戶的客戶代理(Agent),使得事務(wù)處理模塊可以引用各個客戶代理進(jìn)行事務(wù)處理。</p><p><b> 2.3線程原理</b></p><p> 多線程技術(shù)能夠很好地解決并發(fā)多任務(wù)問題,提高資源的利用率和系統(tǒng)的整體性能,所以計算機(jī)的各個領(lǐng)域都對其進(jìn)行了研究,從不
38、同的角度實現(xiàn)或者增強(qiáng)了對多線程的支持。</p><p> 1.進(jìn)程和線程的關(guān)系</p><p> 進(jìn)程是系統(tǒng)分配資源的基本單位,具有動態(tài)性、并發(fā)性、和獨立性,進(jìn)程在自己的地址空間上運(yùn)用,擁有各自獨立的資源。一個進(jìn)程包括代碼、數(shù)據(jù)、堆棧、文件I/O和信號表等。進(jìn)程間的關(guān)系如下圖2-5所示[3]。</p><p> PC寄存器
39、 PC寄存器</p><p> 代碼段 代碼段</p><p> 靜態(tài)數(shù)據(jù) 靜態(tài)數(shù)據(jù)</p><p> 動態(tài)棧 動態(tài)棧</p><p> 堆棧 堆棧
40、 </p><p> 圖2-5 進(jìn)程間關(guān)系圖</p><p> 為了解決多進(jìn)程調(diào)用在處理并行性任務(wù)時的不足,因此提出了線程概念。比如把進(jìn)程中的執(zhí)行代碼與資源分離,而在一個地址空間中可執(zhí)行多條指令流,每條執(zhí)行流就是一個線程。但是,線程目前還沒有一個嚴(yán)格而統(tǒng)一的定義,簡單地講,線程就是程序中的單一順序執(zhí)行流。如下圖2-6所示。</p><p> 進(jìn)程
41、 線程1 線程2</p><p> 寄存器 寄存器</p><p><b> ……</b></p><p> 代碼段 堆棧 堆棧</p><p><b> 靜態(tài)數(shù)
42、據(jù)</b></p><p><b> 動態(tài)棧</b></p><p> 圖2-6 程序中的單一順序執(zhí)行流</p><p> 線程是處理調(diào)度的基本單位,線程為維護(hù)自己的控制流而保存寄存器和堆棧。通過以上的分析可以看出多線程技術(shù)的優(yōu)點:</p><p> ?。?)對于上下文的線程,線程之間越小,轉(zhuǎn)換成本小
43、,你可以節(jié)省一些不必要的開銷;</p><p> ?。?)相同的進(jìn)程地址空間和系統(tǒng)資源線程之間共享,創(chuàng)建時,不必復(fù)制進(jìn)程,與創(chuàng)建進(jìn)程相比較,減少開銷;</p><p> ?。?)線程之間的通信比進(jìn)程開銷??;</p><p> ?。?)由于線程共享資源少,支持多線程系統(tǒng)中的線程總數(shù)大大超過單線程進(jìn)程。</p><p> 進(jìn)程是資源分配的基本單
44、位,線程是CPU調(diào)度的基本單位,同一進(jìn)程內(nèi)的線程共享資源,這為單線程進(jìn)程短缺的提出了一個解決方案,對提高系統(tǒng)資源利用率有很重要的意義[4]。</p><p> 多線程在實現(xiàn)方式上可以分為內(nèi)核級多線程、用戶級多線程和混合級多線程。</p><p> ?。?)內(nèi)核級多線程:所有的現(xiàn)場由操作系統(tǒng)的內(nèi)核線程來生產(chǎn)和管理,如Windows NT,OS/2的,都支持多線程操作系統(tǒng);</p>
45、;<p> (2)用戶級多線程:這種方式是用線程庫的實現(xiàn)方式和調(diào)度線程,線程提供語言層次的機(jī)制,提供用戶級多線程有Pthread等;</p><p> ?。?)混合級多線程:內(nèi)核和用戶級同時提供多線程的支持,同時提供用戶映射用戶線程庫調(diào)度線程的內(nèi)核線程,是內(nèi)核線程調(diào)度運(yùn)行的核心,它是內(nèi)核級多線程和多用戶級別綜合線程。混合級多線程機(jī)制提供有Solaris2、Mach[5]。</p>&
46、lt;p> 2. 多線程的優(yōu)缺點</p><p> 多線程技術(shù)在使用時需要充分考慮它的優(yōu)缺點。而如何使用多線程技術(shù),何時避免用它,是我們需要掌握一項重要的技術(shù)[6]。多線程處理可以同時運(yùn)行多個線程。由于多線程應(yīng)用程序?qū)⒊绦騽澐殖啥鄠€獨立的任務(wù),因此可以在以下方面的性能顯著提高[7]:</p><p> ?。?)多線程技術(shù)能夠快速反應(yīng)程序,用戶界面,做其他工作的同時處于活動狀態(tài);&
47、lt;/p><p> ?。?)也確定了每個任務(wù)的優(yōu)先順序,并優(yōu)化性能;</p><p> (3)處理當(dāng)前自由,你可以給其他任務(wù)的處理器時間的任務(wù);</p><p> ?。?)加工時間密集型任務(wù),可以定期給其他任務(wù)的處理器時間;</p><p> ?。?)可以隨時停止任務(wù)[8]。</p><p> 對于是否需要創(chuàng)建多個線
48、程,取決于各種因素。在以下情況下,最適合采用多線程處理:</p><p> ?。?)耗時或大量占用處理器的任務(wù)阻塞用戶界面操作;</p><p> ?。?)每個任務(wù)必須等待外部資源,如遠(yuǎn)程文件或互聯(lián)網(wǎng)連接;</p><p> 同樣的,多線程也存在許多缺點,在考慮多線程時需要進(jìn)行充分的考慮。多線程的主要缺點包括:</p><p> 等待共享
49、資源將導(dǎo)致程序運(yùn)行速度較慢。這些共享資源主要是獨占性的資源;</p><p> 需要額外的線程來管理CPU開銷。系統(tǒng)將帶來的使用線程的上下文切換開銷。而這種負(fù)擔(dān)超過一定程度,多線程將使用一個單獨的線程來更新數(shù)組中的每個元素;</p><p> 線程死鎖,也就是說,很長一段時間或資源競爭,線程死鎖等多線程癥狀;</p><p> 而公共變量讀或?qū)?。?dāng)多個線程需要
50、寫公共變量時,后者往往會改變線程在線程上存儲的數(shù)據(jù),從而使前一個線程的參數(shù)被修改[9]。</p><p> 2.4 網(wǎng)絡(luò)通信原理</p><p> 隨著科技的發(fā)展,網(wǎng)絡(luò)走入我們的工作和家庭。OSI/RM模型定義了異種機(jī)連網(wǎng)的標(biāo)準(zhǔn)框架,為連接分散的“開放”系統(tǒng)提供了基礎(chǔ)。它采用分層結(jié)構(gòu)技術(shù),將網(wǎng)絡(luò)通信功能分為7層,每層完成一個特定功能。從低到高分別為物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會
51、話層、表示層、應(yīng)用層。其主要功能[10]:</p><p> ?。?)物理層:建立,維護(hù)和拆除物理鏈路提供所需的機(jī)器和功能規(guī)格,提供傳輸介質(zhì)上非結(jié)構(gòu)化的傳輸碼流和物理鏈路故障檢測和指示;</p><p> ?。?)數(shù)據(jù)鏈路層:為無差錯幀傳輸點對點,和流量控制功能的網(wǎng)絡(luò)層實體;</p><p> ?。?)網(wǎng)絡(luò)層:傳輸層提供端至端交換網(wǎng)絡(luò)數(shù)據(jù)傳輸功能,使得路徑選擇,交換
52、,網(wǎng)絡(luò)傳輸擁擠收費及其他細(xì)節(jié),傳輸層;及實體的建立,維護(hù)運(yùn)輸層結(jié)束與一個或多個條通信路徑,對無法恢復(fù)的錯誤予以報告;</p><p> ?。?)傳輸層:為了提供一個透明的實體將變成可見的,可靠的數(shù)據(jù)傳輸服務(wù),以確保端到端的數(shù)據(jù)完整性,可以選擇在網(wǎng)絡(luò)層提供最適當(dāng)?shù)姆?wù),建立,維護(hù)和傳輸功能;</p><p> (5)會話層:實體相互合作,建立,維護(hù)和結(jié)束會話連接。完成通信過程,邏輯名稱和物
53、理名稱對應(yīng)對話提供管理服務(wù);</p><p> ?。?)表示層:為其提供可以解釋所交換信息含義的服務(wù);</p><p> ?。?)應(yīng)用層:提供用戶服務(wù)。</p><p> 而其工作原理圖如下圖2-7所示[11]。</p><p><b> 面向會話連接</b></p><p> 主機(jī)A
54、 中間結(jié)點 主機(jī)B</p><p> 圖2-7 信息流動方向圖</p><p> 3 Socket應(yīng)用程序開發(fā)</p><p> 3.1 Windows Mobile簡介</p><p> Windows Mobile是由微軟公司提供的先進(jìn)的移動設(shè)備操作系統(tǒng),基Windows Mobile
55、 的 Pocket PC Phone Edition 和 Smartphone不僅為消費者提供了熟悉并且可以自定義的用戶體驗,同時也為企業(yè)用戶提供了一個可擴(kuò)展的平臺,增加新的銷售收入并帶動業(yè)務(wù)增長。</p><p> 目前,移動用戶對數(shù)據(jù)信息訪問的需求明顯增長。企業(yè)單位一直都在促使自身經(jīng)營的數(shù)據(jù)信息供給更多用戶訪問,包括Internet在內(nèi)的新型數(shù)據(jù)源的訪問。這在PC機(jī)上已經(jīng)成為可能。但在選擇掌上設(shè)備企業(yè)方案時
56、,必須考慮數(shù)據(jù)是否安全,連接點是否受限制,以及可選的軟件、硬件、外設(shè)和服務(wù)是否充足等因素[12]。</p><p> 3.2 Visual Studio 開發(fā)環(huán)境介紹</p><p> Visual Studio 97 是最早的 Visual Studio 版本。包含有面向 Windows 開發(fā)使用的 Visual Basic 5.0、Visual C++ 5.0,面向 Java 開發(fā)
57、的 Visual J++ 和面向數(shù)據(jù)庫開發(fā)的 Visual FoxPro,還包含有創(chuàng)建 DHTML (Dynamic HTML) 所需要的 Visual InterDev。1998 年,微軟公司發(fā)布了 Visual Studio 6.0。所有開發(fā)語言的開發(fā)環(huán)境版本均升至 6.0。這也是 Visual Basic 最后一次發(fā)布,從下一個版本開始,Microsoft Basic 進(jìn)化成了一種新的面向?qū)ο蟮恼Z言:Microsoft Basic
58、 NET。</p><p> Visual Studio 2008 在三個方面為開發(fā)人員提供了關(guān)鍵改進(jìn):突破性的用戶體驗、快速應(yīng)用開發(fā)、高效的團(tuán)隊協(xié)作。</p><p> 突破性的用戶體驗。Visual Studio 2008提供的最新平臺的密切聯(lián)系,加快開發(fā)應(yīng)用程序創(chuàng)建新的工具,其中包括Web,Windows Vista中的Office 2007,SQL Server 2008和Wi
59、ndows Server 2008平臺。對于Web,ASP.NET的AJAX和其他新技術(shù)使開發(fā)人員能夠快速創(chuàng)建更有效,更具交互性,更個性化的新一代Web體驗。</p><p> 快速應(yīng)用開發(fā)。為了幫助開發(fā)人員迅速創(chuàng)建先進(jìn)的軟件,Visual Studio 2008提供改進(jìn)的語言和數(shù)據(jù)功能。 Visual Studio 2008還使開發(fā)人員能夠創(chuàng)建從相同的開發(fā)環(huán)境創(chuàng)建.NET框架版本的應(yīng)用程序。開發(fā)建設(shè).NET框
60、架2.0,3.0或3.5的應(yīng)用程序,這意味著他們可以在同一環(huán)境中支持各種各樣的項目[13]。 </p><p> 3. 高效的團(tuán)隊協(xié)作。Visual Studio 2008中幫助開發(fā)團(tuán)隊擴(kuò)大加強(qiáng)協(xié)作和完善的服務(wù),包括幫助數(shù)據(jù)庫專業(yè)人士,和圖形設(shè)計人員加入到開發(fā)流程的工具[14]。</p><p> Visual Studio 2008 提供了高級開發(fā)工具、調(diào)試功能、數(shù)據(jù)庫功能和創(chuàng)新等功
61、能,幫助在各種平臺上快速創(chuàng)建當(dāng)前最先進(jìn)的應(yīng)用程序。Visual Studio 2008 包括各種增強(qiáng)功能,為開發(fā)人員提供了所有相關(guān)的工具和框架支持,幫助創(chuàng)建引人注目的、令人印象深刻并支持 AJAX 的 Web 應(yīng)用程序[15]。</p><p> 3.3 網(wǎng)絡(luò)連接的建立</p><p> 一般情況下,我們都會使用Windows Mobile設(shè)備上的WiFi模塊來接入Access Nod
62、e,從而達(dá)到上網(wǎng)的目的。我們通過掃描當(dāng)前的無線環(huán)境,發(fā)現(xiàn)周圍的AP接入點,顯示他們的名字、MAC地址、信號強(qiáng)度(RSSI)、WiFi信道以及是否需要密碼等信息。那么,我們?nèi)绾卫肳iFi來建立設(shè)備與設(shè)備之間的連接呢?其實就是所謂的Ad-hoc網(wǎng)絡(luò)(或者說是點對點/P2P)如何在Windows Mobile設(shè)備上來建立的問題。</p><p> 如果說是在Windows Mobile設(shè)備上建立點對點的連接,那Bl
63、uetooth技術(shù)也是可以實現(xiàn)的。的確,利用Bluetooth建立設(shè)備與設(shè)備之間的連接確實是許多移動設(shè)備上的主流。但是,Bluetooth與WiFi相比,其帶寬的劣勢比較明顯,而且傳輸距離也沒有WiFi遠(yuǎn)。當(dāng)然,一般來說,WiFi的功耗是要比Bluetooth大的,但是在某些應(yīng)用場景下,我們側(cè)重的是帶寬和距離。因此,從以上分析來看,利用WiFi在Windows Mobile設(shè)備上建立點對點的連接,還是具備應(yīng)用意義的。</p>
64、<p> 那么,如何在Windows Mobile上來建立Ad-hoc網(wǎng)絡(luò)呢?下面以Windows Mobile 2003se for Pocket PC和Windows Mobile 6 Professional為例,一步一步給出配置步驟。</p><p> 首先,確定以Windows Mobile 2003se for Pocket PC設(shè)備為Server,Windows Mobile 6
65、Professional設(shè)備為Client。打開WiFi,然后點擊設(shè)置->添加新的,這里設(shè)置網(wǎng)絡(luò)名稱為“MyPPCNet”,并選中“這是設(shè)備至設(shè)備(特定)連接”,如下圖3-1所示。</p><p> 圖3-1 添加新的WiFi網(wǎng)絡(luò)</p><p> 在網(wǎng)絡(luò)密鑰中,選擇驗證已打開,數(shù)據(jù)加密已禁用或者自行選擇數(shù)據(jù)加密。設(shè)置完成后,點擊“OK”,在無線網(wǎng)絡(luò)中,出現(xiàn)了“MyPPCNet
66、”,點擊它,在出來的右鍵菜單中,選擇“連接”,使得該網(wǎng)絡(luò)處于“連接”狀態(tài),如下圖3-2所示。</p><p> 圖3-2 網(wǎng)絡(luò)密鑰設(shè)置</p><p> Server端設(shè)置完以后,我們轉(zhuǎn)向Client端,跟設(shè)置Server端一樣,打開無線網(wǎng)絡(luò),然后在設(shè)置->連接中選擇“WiFi”,系統(tǒng)會列出一堆掃描到的無線網(wǎng)絡(luò),從中我們可以發(fā)現(xiàn)剛剛在Server端建立的“MyPPCNet”,如
67、下圖3-3所示。</p><p> 圖3-3 打開無線網(wǎng)絡(luò)進(jìn)行掃描</p><p> 在Client端設(shè)置“MyPPCNet”時,要根據(jù)Server端的設(shè)置來做,尤其是身份驗證和數(shù)據(jù)加密等選項,如下圖3-4所示。</p><p> 圖3-4 加入WiFi網(wǎng)絡(luò)圖</p><p> 經(jīng)過一點時間,就可以發(fā)現(xiàn)“MyPPCNet”處于連接
68、狀態(tài)了,我們還可以查到對應(yīng)的MAC地址、模式、信道等信息,如下圖3-5所示。</p><p> 圖3-5 WiFi網(wǎng)絡(luò)信息</p><p> 至此,Server端和Client端之間的Ad-hoc網(wǎng)絡(luò)已經(jīng)建立[16]。</p><p> 3.4.設(shè)備間的文件傳輸開發(fā)</p><p> 在上段3.3節(jié)中,講述了利用WiFi在Windo
69、ws Mobile上建立Ad-hoc網(wǎng)絡(luò)的方法。由于Ad-hoc網(wǎng)絡(luò)建立了點對點的無線鏈接,因其具有方便、靈活、可配置的特點,所以不用接入點就能夠?qū)崿F(xiàn)設(shè)備之間的互聯(lián)。并且講述了建立點對點的WiFi無線鏈接后,Windows Mobile設(shè)備之間利用Socket來實現(xiàn)消息的實時發(fā)送與接收?,F(xiàn)在在建立點對點的WiFi無線鏈接后,將進(jìn)行Windows Mobile設(shè)備之間利用Socket來實現(xiàn)文件傳輸。 </p><p&g
70、t; 3.4.1 新建工程</p><p> 1. 應(yīng)用程序分為Server端和Client端,這里只是實現(xiàn)了簡單的文件傳輸功能,并沒有涉及深入,如斷點續(xù)傳功能。在Server和Client建立連接以后,在Server端將用戶選擇的文件傳輸給Client端,然后就結(jié)束傳輸。 </p><p> 2. 開發(fā)環(huán)境為Visual Studio 2008 + Windows Mobile 2
71、003 for Pocket PC SDK + Windows Mobile 6 Pro SDK,使用MFC來開發(fā)。 </p><p> 3. 新建項目的時候,在Advanced Features選項中,選中Windows sockets,以添加對Socket的支持。</p><p> 4. 在Server端和Client端的頭文件中,加入文件信息的結(jié)構(gòu)體:</p>&l
72、t;p> typedef struct _SOCKET_STREAM_FILE_INFO {</p><p> TCHAR szFileTitle[128]; //文件的標(biāo)題名</p><p> DWORD dwFileAttributes; //文件的屬性</p><
73、;p> FILETIME ftCreationTime; //文件的創(chuàng)建時間</p><p> FILETIME ftLastAccessTime; //文件的最后訪問時間</p><p> FILETIME ftLastWriteTime; //文件的最
74、后修改時間</p><p> DWORD nFileSizeHigh; //文件大小的高位雙字</p><p> DWORD nFileSizeLow; //文件大小的地位雙字</p><p> DWORD dwReserbed0;
75、 //保留</p><p> DWORD dwReserved1; //保留</p><p> } SOCKET_STREAM_FILE_ONFO,* PSOCKET_STREAM_FILE_INFO;</p><p> 3.4.2 服務(wù)器端</p><
76、p> 5. 在Server端添加按鈕,在按鈕的點擊事件中,讓用戶選擇本地文件,然后發(fā)送給Client端。在Client端添加按鈕和Server端的IP地址輸入框,在輸入Server端的IP地址后,點擊按鈕,然后接收Server端發(fā)送過來的文件。</p><p> 6. 這里使用的是CSocket來進(jìn)行通信.CSocket里面的方法是阻塞式的,所以在發(fā)送、接收較大文件的時候,給用戶的感覺就是死機(jī)一樣,為了
77、能夠給用戶進(jìn)行提示,需要加入發(fā)送文件的進(jìn)度條。那么如何來實現(xiàn)文件傳輸進(jìn)度條呢?因為我們是分段進(jìn)行傳輸?shù)?,即每次發(fā)送1024個Bytes,而文件的總大小是可知的。所以,在發(fā)送或者接收文件內(nèi)容的時候,可以進(jìn)行計數(shù),從而知道完成的百分比,把相關(guān)信息顯示在進(jìn)度條上。(注意:這里只用到了文件大小的低位雙字)</p><p> 7. 關(guān)鍵代碼如下:</p><p><b> Server
78、端:</b></p><p> UINT dwRead=0;</p><p> while(dwRead<StreamFileInfo.nFileSizeLow)</p><p><b> {</b></p><p> byte* data = new byte[1024];</p>
79、<p> UINT dw=myFile.Read(data, 1024);</p><p> sockRecv.Send(data, dw);</p><p> dwRead+=dw;</p><p> //set progress bar</p><p> myCtrl.SetPos(dwRead*100/Strea
80、mFileInfo.nFileSizeLow);</p><p><b> }</b></p><p> myFile.Close();</p><p><b> 3.4.3 客戶端</b></p><p> 客戶端主要進(jìn)行文件發(fā)送。關(guān)鍵代碼如下。</p><p>
81、 UINT dwRead = 0;</p><p> while(dwRead<StreamFileInfo.nFileSizeLow)</p><p><b> {</b></p><p> byte* data = new byte[1024];</p><p> memset(data,0,1024)
82、;</p><p> UINT dw=sockClient.Receive(data, 1024);</p><p> destFile.Write(data, dw);</p><p> dwRead+=dw;</p><p> //set progress bar</p><p> myCtrl.SetP
83、os(dwRead*100/StreamFileInfo.nFileSizeLow);</p><p><b> }</b></p><p> 8. 為了更好地提示用戶,在傳輸文件/接收文件過程中,以加入“系統(tǒng)忙”的提示,即用以下代碼對來實現(xiàn):</p><p> //set wait suesor</p><p>
84、 SetCursor(LoadCursor(NULL, IDC_WAIT));</p><p> //close wait sursor</p><p> SetCursor(NULL);</p><p> 3.4.4 應(yīng)用程序測試</p><p> 9. 代碼測試。利用WiFi在Windows Mobile上建立Ad-hoc網(wǎng)絡(luò)。
85、在Windows Mobile 2003se for Pocket PC設(shè)備上運(yùn)行Client端程序,在Windows Mobile 6 Professional設(shè)備上運(yùn)行Server端程序。</p><p> 如下圖3-6所示,在客戶端輸入服務(wù)器端的IP地址,點擊“Receive File”,準(zhǔn)備接收文件。</p><p> 圖3-6 Client端程序界面</p>
86、<p> 在服務(wù)器端,選擇需要發(fā)送的文件,進(jìn)行打開,如下圖3-7所示。</p><p> 圖3-7 Server端程序打開文件界面</p><p> 服務(wù)器端發(fā)送文件時,會通過進(jìn)度條進(jìn)行指示,如下圖3-8所示。</p><p> 圖3-8 Server端文件發(fā)送完畢界面</p><p> 同樣,在客戶端接收文件時,也會
87、有進(jìn)度條指示,如下圖3-9所示。</p><p> 圖3-9 Client端文件接收完畢界面</p><p> 用資源管理器瀏覽客戶端的文件,可以在設(shè)備根目錄下找到。如圖3-10所示。</p><p> 圖3-10 Client端接收文件位置</p><p><b> 4 結(jié)論</b></p>
88、<p> 本論文研究了基于Socket技術(shù)的Windows Mobile設(shè)備間的文件傳輸。首先介紹了關(guān)于Socket技術(shù)的發(fā)展前景;其次,對本課題的多線程技術(shù)、網(wǎng)絡(luò)通信和Socket技術(shù)進(jìn)行了深入介紹,并根據(jù)Windows Mobile設(shè)備的特點,保留有用的一部分用于應(yīng)用程序的編譯;最后,利用Visual Studio 2008完成應(yīng)用程序的開發(fā),通過建立設(shè)備連接,完成程序的測試。</p><p>
89、 應(yīng)用程序分為2個部分:客戶端和服務(wù)器端。完成客戶端和服務(wù)器端的設(shè)置后,進(jìn)行掃描。服務(wù)器端確定目標(biāo)IP地址進(jìn)行發(fā)送文件,客戶端接收文件,從而達(dá)到設(shè)備間的文件傳輸。在傳輸過程中,使用CSocket來進(jìn)行通信,CSocket里面的方法是阻塞式的,所以在發(fā)送、接收較大文件的時候,傳輸進(jìn)度較慢,因此在這里加入發(fā)送文件的進(jìn)度條。經(jīng)過測試,得到了較好的結(jié)果。</p><p><b> 參考文獻(xiàn)</b>
90、</p><p> [1] 王洪富. 電信級Socket通信框架的研究與實現(xiàn)[D]. 北京:北京郵電大學(xué),計算機(jī)應(yīng)用,2004.</p><p> [2] 王雷,王子淘.基于Linux的Socket網(wǎng)絡(luò)編程的性能優(yōu)化[J].電子設(shè)計工程 2009,17(9):56-58.</p><p> [3] 方淳.多線程并行處理技術(shù)在五坐標(biāo)數(shù)控加工仿真中的應(yīng)用[D].西
91、安:西北工業(yè)大學(xué),2006.</p><p> [4] 賈廣雷,劉培玉,耿長欣等.多線程技術(shù)及其在串口通信中的應(yīng)用[J].計算機(jī)工程,2003,29(1):246-250.</p><p> [5] 任保獻(xiàn),馬磊.基于C/S的遠(yuǎn)程控制系統(tǒng)的設(shè)計與實現(xiàn)[J].安陽師范學(xué)院學(xué)報,2005,5(2):15-30.</p><p> [6] 駱斌,費翔林. 多線程技術(shù)
92、的研究與應(yīng)用[J]. 計算機(jī)研究與發(fā)展,2000,37(4):407-410.</p><p> [7] 陳根永,程亮,郭含等. 基于多線程技術(shù)提高電量采集的實時性[J].微計算機(jī)信息,2009,25(25):87-88.</p><p> [8] 李春華等.多線程的軟件實現(xiàn)[J].計算機(jī)工程與科學(xué),1999,4:45-54.</p><p> [9] 孔昊,
93、胡銀保. 線程在基于Socket通信中的應(yīng)用[J].蘭州工業(yè)高等??茖W(xué)校學(xué)報,2010,17(1):23-26.</p><p> [10] 馮浩,蘇磊.基于TCP的多線程網(wǎng)絡(luò)文件傳輸系統(tǒng)[J].電子信息學(xué)院通信工程,2008,7(8):93-94.</p><p> [11] 葛洪源.網(wǎng)絡(luò)通信原理淺析[J].科技情報開發(fā)與經(jīng)濟(jì),2003,13(8):56-69.</p>
94、<p> [12] 邵森.計算機(jī)訪問控制技術(shù)研究綜述[J].中國新技術(shù)新產(chǎn)品,2009,3(2):41-50.</p><p> [13]陳在平,彭登峰.基于Visual Studio.NET的OPC客戶端的研究與實現(xiàn)[J].自動化制造,2008,30(12):23-35.</p><p> [14] Young Hwan Choi,Sun Yeong Choi. Ass
95、essment of socket weld integrity in pipings[J].Journal of loss prevention in the process industries,2009,22(6):23-28.</p><p> [15] L.E. Caligiuri, L.N.Eiselstein. Proper Design and Fabrication of Socket Wel
96、ds for Use in Sour Service [J].Materials Science Forum, 2010, 638(4):75-80.</p><p> [16] Embedded Your Life[EB/OL],2011,5.</p><p> http://www.cnblogs.com/dearsj001
97、 </p><p> 附錄:應(yīng)用程序源代碼</p><p> 客戶端(TCPFileClient)</p><p> // TCPFileClient.cpp : Defines the class behaviors for the application.</p><p><
98、b> //</b></p><p> #include "stdafx.h"</p><p> #include "TCPFileClient.h"</p><p> #include "TCPFileClientDlg.h"</p><p> #ifde
99、f _DEBUG</p><p> #define new DEBUG_NEW</p><p><b> #endif</b></p><p> // CTCPFileClientApp</p><p> BEGIN_MESSAGE_MAP(CTCPFileClientApp, CWinApp)</p>
100、;<p> END_MESSAGE_MAP()</p><p> // CTCPFileClientApp construction</p><p> CTCPFileClientApp::CTCPFileClientApp()</p><p> : CWinApp()</p><p><b> {</
101、b></p><p> // TODO: add construction code here,</p><p> // Place all significant initialization in InitInstance</p><p><b> }</b></p><p> // The one a
102、nd only CTCPFileClientApp object</p><p> CTCPFileClientApp theApp;</p><p> // CTCPFileClientApp initialization</p><p> BOOL CTCPFileClientApp::InitInstance()</p><p>
103、<b> {</b></p><p> #if defined(WIN32_PLATFORM_PSPC) || defined(WIN32_PLATFORM_WFSP)</p><p> // SHInitExtraControls should be called once during your application's initializatio
104、n to initialize any</p><p> // of the Windows Mobile specific controls such as CAPEDIT and SIPPREF.</p><p> SHInitExtraControls();</p><p> #endif // WIN32_PLATFORM_PSPC || WIN32_
105、PLATFORM_WFSP</p><p> if (!AfxSocketInit())</p><p><b> {</b></p><p> AfxMessageBox(IDP_SOCKETS_INIT_FAILED);</p><p> return FALSE;</p><p>&
106、lt;b> }</b></p><p> // Standard initialization</p><p> // If you are not using these features and wish to reduce the size</p><p> // of your final executable, you shoul
107、d remove from the following</p><p> // the specific initialization routines you do not need</p><p> // Change the registry key under which our settings are stored</p><p> // TODO
108、: You should modify this string to be something appropriate</p><p> // such as the name of your company or organization</p><p> SetRegistryKey(_T("Local AppWizard-Generated Applications&q
109、uot;));</p><p> CTCPFileClientDlg dlg;</p><p> m_pMainWnd = &dlg;</p><p> INT_PTR nResponse = dlg.DoModal();</p><p> if (nResponse == IDOK)</p><p>
110、<b> {</b></p><p> // TODO: Place code here to handle when the dialog is</p><p> // dismissed with OK</p><p><b> }</b></p><p> // Since the
111、 dialog has been closed, return FALSE so that we exit the</p><p> // application, rather than start the application's message pump.</p><p> return FALSE;</p><p><b> }&
112、lt;/b></p><p> Stdafx.h:代碼</p><p> // stdafx.h : include file for standard system include files,</p><p> // or project specific include files that are used frequently,</p&g
113、t;<p> // but are changed infrequently</p><p> #pragma once</p><p> #pragma comment(linker, "/nodefaultlib:libc.lib")</p><p> #pragma comment(linker, "/nod
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于socket技術(shù)的windows mobile設(shè)備間的文件傳輸工具開發(fā)【開題報告】
- 基于socket技術(shù)的windows mobile設(shè)備間的文件傳輸工具開發(fā)【任務(wù)書】
- 基于socket技術(shù)的windows mobile設(shè)備間的實時消息工具開發(fā)【畢業(yè)論文】
- 基于socket技術(shù)的windows mobile設(shè)備間的實時消息工具開發(fā)【開題報告】
- 基于socket技術(shù)的windows mobile設(shè)備間的實時消息工具開發(fā)【任務(wù)書】
- 基于藍(lán)牙技術(shù)的windows mobile設(shè)備通信開發(fā)【畢業(yè)論文】
- 基于opengl es技術(shù)的windows mobile設(shè)備文字圖形開發(fā)【畢業(yè)論文】
- 畢業(yè)論文——基于android的ftp文件傳輸
- 畢業(yè)論文——基于android的ftp文件傳輸
- 畢業(yè)論文——基于android的ftp文件傳輸
- 網(wǎng)絡(luò)實時文件傳輸軟件的開發(fā)【畢業(yè)論文】
- windows mobile 設(shè)備的短信防火墻開發(fā)【畢業(yè)論文】
- windows mobile設(shè)備上的gps定位應(yīng)用開發(fā)【畢業(yè)論文】
- windows mobile 設(shè)備的攝像頭應(yīng)用開發(fā)【畢業(yè)論文】
- 畢業(yè)論文范文——java文件傳輸
- 基于windows mobile的zigbee探測儀開發(fā)【畢業(yè)論文】
- 計算機(jī)科學(xué)與技術(shù)畢業(yè)論文-基于android的ftp文件傳輸
- windows mobile 設(shè)備上的無線局域網(wǎng)管理器開發(fā)【畢業(yè)論文】
- 畢業(yè)論文---基于局域網(wǎng)的文件傳輸系統(tǒng)的設(shè)計與實現(xiàn)
- 基于藍(lán)牙技術(shù)的windows mobile設(shè)備通信開發(fā)【開題報告】
評論
0/150
提交評論