湖南工業(yè)大學(xué)計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì).doc_第1頁
湖南工業(yè)大學(xué)計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì).doc_第2頁
湖南工業(yè)大學(xué)計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì).doc_第3頁
湖南工業(yè)大學(xué)計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì).doc_第4頁
湖南工業(yè)大學(xué)計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì).doc_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)說明書(題目)基于Java的簡易網(wǎng)絡(luò)聊天程序起止日期: .學(xué)生姓名班級(jí)學(xué)號(hào)成績指導(dǎo)教師(簽字)計(jì)算機(jī)與通信學(xué)院2012年 7月 1日課題名稱基于Java的簡易網(wǎng)絡(luò)聊天程序 人 數(shù)組 長同組人員課題的主要內(nèi)容和要求1 使用Java高級(jí)面向?qū)ο缶幊陶Z言編寫一個(gè)網(wǎng)絡(luò)聊天程序2 聊天程序應(yīng)該能夠通過英特網(wǎng)進(jìn)行簡單的字符發(fā)送與接收3 類似于一般的主流網(wǎng)絡(luò)即時(shí)聊天程序,以騰訊QQ為例,為了簡化程序和系統(tǒng)結(jié)構(gòu),將騰訊QQ中的“客戶端服務(wù)器客戶端”的數(shù)據(jù)傳輸方式改為“客戶端服務(wù)器”的模式。4 程序應(yīng)該具有圖形界面,不要求長的和騰訊QQ長的一模一樣,但必須具備聊天程序的基本雛形。具體任務(wù)陳志堅(jiān):編寫程序肖平:收集課題相關(guān)資料郭晴:寫課題報(bào)告時(shí)間安排與完成情況7.5了解課題,著重查找與課題相關(guān)的資料。7.7-7.8仔細(xì)閱讀相關(guān)理論知識(shí),并根據(jù)具體情況,確定設(shè)計(jì)的方案。7-9-7-10編寫Java程序。7.11 調(diào)試程序。7.12 課程設(shè)計(jì)答辯,同時(shí)完成課程設(shè)計(jì)報(bào)告一、課題介紹互聯(lián)網(wǎng)的普及給人們的通訊方式帶來了一場(chǎng)革命,而在這場(chǎng)革命又反過來促進(jìn)互聯(lián)網(wǎng)的普及以及進(jìn)步,即時(shí)聊天是因特網(wǎng)的重要運(yùn)用之一,目前主流即時(shí)聊天軟件有騰訊QQ,微軟MSN,網(wǎng)易泡泡,新浪UC,阿里旺旺等等,而其中風(fēng)靡中國乃至亞洲的QQ軟件以其合理的界面,豐富的功能,以及超強(qiáng)的性能成為無數(shù)企業(yè)模仿的對(duì)象。目前的網(wǎng)路主流聊天程序雖然用途各有側(cè)重,但其實(shí)基本原理和架構(gòu)是差不多的。我們這次做的就是即使網(wǎng)絡(luò)聊天程序中最基本最簡單但也最核心的部分即寫一個(gè)程序能夠?qū)崿F(xiàn)簡單的字符發(fā)送和接受,其他主流網(wǎng)絡(luò)聊天程序無論在怎么變,也無法擺脫這個(gè)雛形。二、理論知識(shí)1. TCP/IP協(xié)議 TCP/IP(傳輸控制協(xié)議/網(wǎng)際協(xié)議)是互聯(lián)網(wǎng)中的基本通信語言或協(xié)議。在私網(wǎng)中,它也被用作通信協(xié)議。當(dāng)你直接網(wǎng)絡(luò)連接時(shí),你的計(jì)算機(jī)應(yīng)提供一個(gè)TCP/IP程序的副本,此時(shí)接收你所發(fā)送的信息的計(jì)算機(jī)也應(yīng)有一個(gè)TCP/IP程序的副本。 TCP/IP是一個(gè)兩層的程序。高層為傳輸控制協(xié)議,它負(fù)責(zé)聚集信息或把文件拆分成更小的包。這些包通過網(wǎng)絡(luò)傳送到接收端的TCP層,接收端的TCP層把包還原為原始文件。低層是網(wǎng)際協(xié)議,它處理每個(gè)包的地址部分,使這些包正確的到達(dá)目的地。網(wǎng)絡(luò)上的網(wǎng)關(guān)計(jì)算機(jī)根據(jù)信息的地址來進(jìn)行路由選擇。即使來自同一文件的分包路由也有可能不同,但最后會(huì)在目的地匯合。 TCP/IP使用客戶端/服務(wù)器模式進(jìn)行通信。TCP/IP通信是點(diǎn)對(duì)點(diǎn)的,意思是通信是網(wǎng)絡(luò)中的一臺(tái)主機(jī)與另一臺(tái)主機(jī)之間的。TCP/IP與上層應(yīng)用程序之間可以說是“沒有國籍的”,因?yàn)槊總€(gè)客戶請(qǐng)求都被看做是與上一個(gè)請(qǐng)求無關(guān)的。正是它們之間的“無國籍的”釋放了網(wǎng)絡(luò)路徑,才是每個(gè)人都可以連續(xù)不斷的使用網(wǎng)絡(luò)。 許多用戶熟悉使用TCP/IP協(xié)議的高層應(yīng)用協(xié)議。包括萬維網(wǎng)的超文本傳輸協(xié)議(HTTP),文件傳輸協(xié)議(FTP),遠(yuǎn)程網(wǎng)絡(luò)訪問協(xié)議(Telnet)和簡單郵件傳輸協(xié)議(SMTP)。這些協(xié)議通常和TCP/IP協(xié)議打包在一起。 使用模擬電話調(diào)制解調(diào)器連接網(wǎng)絡(luò)的個(gè)人電腦通常是使用串行線路接口協(xié)議(SLIP)和點(diǎn)對(duì)點(diǎn)協(xié)議(P2P)。這些協(xié)議壓縮IP包后通過撥號(hào)電話線發(fā)送到對(duì)方的調(diào)制解調(diào)器中。 與TCP/IP協(xié)議相關(guān)的協(xié)議還包括用戶數(shù)據(jù)報(bào)協(xié)議(UDP),它代替TCP/IP協(xié)議來達(dá)到特殊的目的。其他協(xié)議是網(wǎng)絡(luò)主機(jī)用來交換路由信息的,包括Internet控制信息協(xié)議(ICMP),內(nèi)部網(wǎng)關(guān)協(xié)議(IGP),外部網(wǎng)關(guān)協(xié)議(EGP),邊界網(wǎng)關(guān)協(xié)議(BGP)。2socket協(xié)議(1).什么是socket所謂socket通常也稱作套接字,用于描述IP地址和端口,是一個(gè)通信鏈的句柄。應(yīng)用程序通常通過套接字向網(wǎng)絡(luò)發(fā)出請(qǐng)求或者應(yīng)答網(wǎng)絡(luò)請(qǐng)求。 以J2SDK-1.3為例,Socket和ServerSocket類庫位于包中。ServerSocket用于服務(wù)器端,Socket是建立網(wǎng)絡(luò)連接時(shí)使用的。在連接成功時(shí),應(yīng)用程序兩端都會(huì)產(chǎn)生一個(gè)Socket實(shí)例,操作這個(gè)實(shí)例,完成所需的會(huì)話。對(duì)于一個(gè)網(wǎng)絡(luò)連接來說,套接字是平等的,并沒有差別,不因?yàn)樵诜?wù)器端或在客戶端而產(chǎn)生不同級(jí)別。(2).如何開發(fā)一個(gè)Server-Client模型的程序開發(fā)原理: 服務(wù)器端,使用ServerSocket監(jiān)聽指定的端口,端口可以隨意指定(由于1024以下的端口通常屬于保留端口,在一些操作系統(tǒng)中不可以隨意使用,所以建議使用大于1024的端口),等待客戶連接請(qǐng)求,客戶連接后,會(huì)話產(chǎn)生;在完成會(huì)話后,關(guān)閉連接。 客戶端,使用Socket對(duì)網(wǎng)絡(luò)上某一個(gè)服務(wù)器的某一個(gè)端口發(fā)出連接請(qǐng)求,一旦連接成功,打開會(huì)話;會(huì)話完成后,關(guān)閉Socket??蛻舳瞬恍枰付ù蜷_的端口,通常臨時(shí)的、動(dòng)態(tài)的分配一個(gè)1024以上的端口。 Socket接口是TCP/IP網(wǎng)絡(luò)的API,Socket接口定義了許多函數(shù)或例程,程序員可以用它們來開發(fā)TCP/IP網(wǎng)絡(luò)上的應(yīng)用程序。要學(xué)Internet上的TCP/IP網(wǎng)絡(luò)編程,必須理解Socket接口。 Socket接口設(shè)計(jì)者最先是將接口放在Unix操作系統(tǒng)里面的。如果了解Unix系統(tǒng)的輸入和輸出的話,就很容易了解Socket了。網(wǎng)絡(luò)的Socket數(shù)據(jù)傳輸是一種特殊的I/O,Socket也是一種文件描述符。Socket也具有一個(gè)類似于打開文件的函數(shù)調(diào)用Socket(),該函數(shù)返回一個(gè)整型的Socket描述符,隨后的連接建立、數(shù)據(jù)傳輸?shù)炔僮鞫际峭ㄟ^該Socket實(shí)現(xiàn)的。3 JavaJava,是由Sun Microsystems公司于1995年5月推出的Java程序設(shè)計(jì)語言和Java平臺(tái)的總稱。用Java實(shí)現(xiàn)的HotJava瀏覽器(支持Java applet)顯示了Java的魅力:跨平臺(tái)、動(dòng)態(tài)的Web、Internet計(jì)算。從此,Java被廣泛接受并推動(dòng)了Web的迅速發(fā)展,常用的瀏覽器現(xiàn)在均支持Java applet。(1)java平臺(tái)構(gòu)架Java平臺(tái)由Java虛擬機(jī)(Java Virtual Machine)和Java 應(yīng)用編程接口(Application Programming Interface、簡稱API)構(gòu)成。Java 應(yīng)用編程接口為Java應(yīng)用提供了一個(gè)獨(dú)立于操作系統(tǒng)的標(biāo)準(zhǔn)接口,可分為基本部分和擴(kuò)展部分。在硬件或操作系統(tǒng)平臺(tái)上安裝一個(gè)Java平臺(tái)之后,Java應(yīng)用程序就可運(yùn)行?,F(xiàn)在Java平臺(tái)已經(jīng)嵌入了幾乎所有的操作系統(tǒng)。這樣Java程序可以只編譯一次,就可以在各種系統(tǒng)中運(yùn)行。Java應(yīng)用編程接口已經(jīng)從1.1x版發(fā)展到1.2版。目前常用的Java平臺(tái)基于Java1.5,最近版本為Java1.7。 Java分為三個(gè)體系JavaSE(Java2 Platform Standard Edition,java平臺(tái)標(biāo)準(zhǔn)版),JavaEE(Java 2 Platform,Enterprise Edition,java平臺(tái)企業(yè)版),JavaME(Java 2 Platform Micro Edition,java平臺(tái)微型版)。 * Java SE(Java Platform,Standard Edition)。Java SE 以前稱為 J2SE。它允許開發(fā)和部署在桌面、服務(wù)器、嵌入式環(huán)境和實(shí)時(shí)環(huán)境中使用的 Java 應(yīng)用程序。Java SE 包含了支持 Java Web 服務(wù)開發(fā)的類,并為 Java Platform,Enterprise Edition(Java EE)提供基礎(chǔ)。 * Java EE(Java Platform,Enterprise Edition)。這個(gè)版本以前稱為 J2EE。企業(yè)版本幫助開發(fā)和部署可移植、健壯、可伸縮且安全的服務(wù)器端 Java 應(yīng)用程序。Java EE 是在 Java SE 的基礎(chǔ)上構(gòu)建的,它提供 Web 服務(wù)、組件模型、管理和通信 API,可以用來實(shí)現(xiàn)企業(yè)級(jí)的面向服務(wù)體系結(jié)構(gòu)(service-oriented architecture,SOA)和 Web 2.0 應(yīng)用程序。 * Java ME(Java Platform,Micro Edition)。這個(gè)版本以前稱為 J2ME。Java ME 為在移動(dòng)設(shè)備和嵌入式設(shè)備(比如手機(jī)、PDA、電視機(jī)頂盒和打印機(jī))上運(yùn)行的應(yīng)用程序提供一個(gè)健壯且靈活的環(huán)境。Java ME 包括靈活的用戶界面、健壯的安全模型、許多內(nèi)置的網(wǎng)絡(luò)協(xié)議以及對(duì)可以動(dòng)態(tài)下載的連網(wǎng)和離線應(yīng)用程序的豐富支持。基于 Java ME 規(guī)范的應(yīng)用程序只需編寫一次,就可以用于許多設(shè)備,而且可以利用每個(gè)設(shè)備的本機(jī)功能。(2)Java與C/C+的差異 熟悉C語言和C+語言的讀者一定想搞清楚這個(gè)問題,實(shí)際上,Java確實(shí)是從C語言和C+語言繼承了許多成份,甚至可以將Java看成是類C語言發(fā)展和衍生的產(chǎn)物.比如Java語言的變量聲明,操作符形式,參數(shù)傳遞,流程控制等方面和C語言,C+語言完全相同.盡管如此,Java和C語言,C+語言又有許多差別,主要表現(xiàn)在如下幾個(gè)方面: (1) Java中對(duì)內(nèi)存的分配是動(dòng)態(tài)的,它采用面向?qū)ο蟮臋C(jī)制,采用運(yùn)算符new為每個(gè)對(duì)象分配內(nèi)存空間,而且,實(shí)際內(nèi)存還會(huì)隨程序運(yùn)行情況而改變.程序運(yùn)行中,每個(gè), Java系統(tǒng)自動(dòng)對(duì)內(nèi)存進(jìn)行掃描,對(duì)長期不用的空間作為”垃圾”進(jìn)行收集,使得系統(tǒng)資源得到更充分地利用.按照這種機(jī)制,程序員不必關(guān)注內(nèi)存管理問題,這使Java程序的編寫變得簡單明了,并且避免了了由于內(nèi)存管理方面的差錯(cuò)而導(dǎo)致系統(tǒng)出問題.而C語言通過malloc()和free()這兩個(gè)庫函數(shù)來分別實(shí)現(xiàn)分配內(nèi)在和釋放內(nèi)存空間的,C+語言中則通過運(yùn)算符new和delete來分配和釋放內(nèi)存.在C和C+這仲機(jī)制中,程序員必須非常仔細(xì)地處理內(nèi)存的使用問題.一方面,如果對(duì)己釋放的內(nèi)存再作釋放或者對(duì)未曾分配的內(nèi)存作釋放,都會(huì)造成死機(jī);而另一方面,如果對(duì)長期不用的或不再使用的內(nèi)存不釋放,則會(huì)浪費(fèi)系統(tǒng)資源,甚至因此造成資源枯竭. (2) Java不在所有類之外定義全局變量,而是在某個(gè)類中定義一種公用靜態(tài)的變量來完成全局變量的功能. (3) Java不用goto語句,而是用try-catch-finally異常處理語句來代替goto語句處理出錯(cuò)的功能. (4) Java不支持頭文件,而C和C+語言中都用頭文件來定義類的原型,全局變量,庫函數(shù)等,這種采用頭文件的結(jié)構(gòu)使得系統(tǒng)的運(yùn)行維護(hù)相當(dāng)繁雜. (5) Java不支持宏定義,而是使用關(guān)鍵字final來定義常量,在C+中則采用宏定義來實(shí)現(xiàn)常量定義,這不利于程序的可讀性. (6) Java對(duì)每種數(shù)據(jù)類型都分配固定長度.比如,在Java中,int類型總是32位的,而在C和C+中,對(duì)于不同的平臺(tái),同一個(gè)數(shù)據(jù)類型分配不同的字節(jié)數(shù),同樣是int類型,在PC機(jī)中為二字節(jié)即16位,而在VAX-11中,則為32位.這使得C語言造成不可移植性,而Java則具有跨平臺(tái)性(平臺(tái)無關(guān)性). (7) 類型轉(zhuǎn)換不同.在C和C+中,可通過指針進(jìn)行任意的類型轉(zhuǎn)換,常常帶來不安全性,而在Java中,運(yùn)行時(shí)系統(tǒng)對(duì)對(duì)象的處理要進(jìn)行類型相容性檢查,以防止不安全的轉(zhuǎn)換. (8) 結(jié)構(gòu)和聯(lián)合的處理.在C和C+中,結(jié)構(gòu)和聯(lián)合的所有成員均為公有,這就帶來了安全性問題,而在Java中根本就不包含結(jié)構(gòu)和聯(lián)合,所有的內(nèi)容都封裝在類里面. (9) Java不再使用指針.指針是C和C+中最靈活,也最容易產(chǎn)生錯(cuò)誤的數(shù)據(jù)類型.由指針?biāo)M(jìn)行的內(nèi)存地址操作常會(huì)造成不可預(yù)知的錯(cuò)誤,同時(shí)通過指針對(duì)某個(gè)內(nèi)存地址進(jìn)行顯式類型轉(zhuǎn)換后,可以訪問一個(gè)C+中的私有成員,從而破壞安全性.而Java對(duì)指針進(jìn)行完全地控制,程序員不能直接進(jìn)行任何指針操作.三課題實(shí)現(xiàn)1方案介紹所謂socket通常也稱作套接字,用于描述IP地址和端口,是一個(gè)通信鏈的句柄。應(yīng)用程序通常通過套接字向網(wǎng)絡(luò)發(fā)出請(qǐng)求或者應(yīng)答網(wǎng)絡(luò)請(qǐng)求。 以J2SDK-1.3為例,Socket和ServerSocket類庫位于包中。ServerSocket用于服務(wù)器端,Socket是建立網(wǎng)絡(luò)連接時(shí)使用的。在連接成功時(shí),應(yīng)用程序兩端都會(huì)產(chǎn)生一個(gè)Socket實(shí)例,操作這個(gè)實(shí)例,完成所需的會(huì)話。對(duì)于一個(gè)網(wǎng)絡(luò)連接來說,套接字是平等的,并沒有差別,不因?yàn)樵诜?wù)器端或在客戶端而產(chǎn)生不同級(jí)別。不管是Socket還是ServerSocket它們的工作都是通過SocketImpl類及其子類完成的。 .Accept方法用于產(chǎn)生阻塞,直到接受到一個(gè)連接,并且返回一個(gè)客戶端的Socket對(duì)象實(shí)例。阻塞是一個(gè)術(shù)語,它使程序運(yùn)行暫時(shí)停留在這個(gè)地方,直到一個(gè)會(huì)話產(chǎn)生,然后程序繼續(xù);通常阻塞是由循環(huán)產(chǎn)生的。 getInputStream方法獲得網(wǎng)絡(luò)連接輸入,同時(shí)返回一個(gè)InputStream對(duì)象實(shí)例,。 getOutputStream方法連接的另一端將得到輸入,同時(shí)返回一個(gè)OutputStream對(duì)象實(shí)例。 注意:其中g(shù)etInputStream和getOutputStream方法均會(huì)產(chǎn)生一個(gè)IOException,它必須被捕獲,因?yàn)樗鼈兎祷氐牧鲗?duì)象,通常都會(huì)被另一個(gè)流對(duì)象使用。詳細(xì)原理圖如下:由圖可知,程序包括服務(wù)器端和客戶端。服務(wù)器,使用ServerSocket監(jiān)聽指定的端口,端口可以隨意指定(由于1024以下的端口通常屬于保留端口,在一些操作系統(tǒng)中不可以隨意使用,所以建議使用大于1024的端口),等待客戶連接請(qǐng)求,客戶連接后,會(huì)話產(chǎn)生;在完成會(huì)話后,關(guān)閉連接。服務(wù)器端的程序界面如下: 客戶端,使用Socket對(duì)網(wǎng)絡(luò)上某一個(gè)服務(wù)器的某一個(gè)端口發(fā)出連接請(qǐng)求,一旦連接成功,打開會(huì)話;會(huì)話完成后,關(guān)閉Socket??蛻舳瞬恍枰付ù蜷_的端口,通常臨時(shí)的、動(dòng)態(tài)的分配一個(gè)1024以上的端口。 客戶端的程序界面如下:2程序運(yùn)行程序運(yùn)行之前,我們必須知道服務(wù)器端主機(jī)所在網(wǎng)絡(luò)的地址,我們學(xué)校大多數(shù)電腦使用使用的IP地址都是被隨機(jī)分配的,每次連接重新建立后,IP地址都可能不同,因此我們要查看服務(wù)器的本地IP地址。查看方式是在CMD界面中輸入ipconfig再回車,響應(yīng)如下:由圖知,該無線網(wǎng)絡(luò)的IP地址為4,子網(wǎng)掩碼為,默認(rèn)網(wǎng)關(guān)為 ,我們將得到的IP改寫入客戶端的相應(yīng)地方即可,打開程序后,服務(wù)器則處于監(jiān)聽狀態(tài),這時(shí)我們只要往客戶端發(fā)送端填入要發(fā)送的字符,再按發(fā)送鍵即可。演示效果如下圖所示課題源代碼 服務(wù)器端代碼*服務(wù)器端 */package QQ.Com;import javax.swing.*;import .*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.*;/implements AcionListenerpublic class MyServer extends JFrame implements ActionListenerJTextArea jta=null;JTextField jtf=null;JButton jb=null;JScrollPane jsp=null;JPanel jp1=null;PrintWriter pw=null;public static void main(String args)MyServer msv=new MyServer();public MyServer()jta=new JTextArea();jtf=new JTextField(20);jsp=new JScrollPane(jta);jb=new JButton(發(fā)送);jb.addActionListener(this);jp1=new JPanel();this.add(jsp,Center);jp1.add(jtf);jp1.add(jb);this.add(jp1,South);this.setTitle(QQ簡易聊天(服務(wù)器端);this.setSize(400, 300);this.setVisible(true);tryServerSocket ss=new ServerSocket(7772);/服務(wù)器監(jiān)聽Socket s=ss.accept();InputStreamReader isr=new InputStreamReader(s.getInputStream();BufferedReader br=new BufferedReader(isr);pw=new PrintWriter(s.getOutputStream(),true);while(true)String info=br.readLine();/讀取信息jta.append(客戶端對(duì)服務(wù)器說:+info+rn);catch(Exception e)e.printStackTrace();Overridepublic void actionPerformed(ActionEvent e) /如果按下發(fā)送按鈕/ TODO Auto-generated method stubif(e.getSource()=jb)String info=jtf.getText();jta.append(服務(wù)器對(duì)客戶端說:+info+rn);pw.println(info);jtf.setText();/清空發(fā)送文本框客戶端代碼/* *服務(wù)器端 */package QQ.Com;import javax.swing.*;import .*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.*;public class MyClient extends JFrame implements ActionListener JTextArea jta=null;JTextField jtf=null;JButton jb=null;JScrollPane jsp=null;JPanel jp1=null;PrintWriter pw=null;public static void main(String args)M

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論