簡(jiǎn)單的跟時(shí)通信軟件_第1頁(yè)
簡(jiǎn)單的跟時(shí)通信軟件_第2頁(yè)
簡(jiǎn)單的跟時(shí)通信軟件_第3頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余17頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、精品河南理工大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院課程設(shè)計(jì)報(bào)告2014 2015 學(xué)年第一學(xué)期課程名稱計(jì)算機(jī)網(wǎng)絡(luò)設(shè)計(jì)題目簡(jiǎn)單的及時(shí)通信軟件姓名郝騰宇學(xué)號(hào)311209010312專業(yè)班級(jí)計(jì)算機(jī) 12-3指導(dǎo)教師李 瑩 瑩可編輯修改精品2015年 1 月 8日目錄一、任務(wù)分析與方案設(shè)計(jì)21任務(wù)分析32.方案設(shè)計(jì)3二、需求分析41.功能需求分析42數(shù)據(jù)需求分析53性能需求分析54運(yùn)行需求分析6三、開發(fā)環(huán)境與工具61.設(shè)計(jì)環(huán)境61.1eclipse開發(fā)平臺(tái)介紹62.基礎(chǔ)知識(shí)72.1java Socket網(wǎng)絡(luò)編程簡(jiǎn)介72.2 套接字的介紹82.3 TCP/IP 協(xié)議簡(jiǎn)介9四、關(guān)鍵技術(shù)與理論91.JAVA 編程技術(shù)92

2、.Java Socket網(wǎng)絡(luò)編程接口10五、相關(guān)圖解及程序111.體系結(jié)構(gòu)設(shè)計(jì)112.具體功能模塊的分析12六、測(cè)試及結(jié)果分析12可編輯修改精品七、心得體會(huì)16八、參考文獻(xiàn)17一、任務(wù)分析與方案設(shè)計(jì)1任務(wù)分析計(jì)算機(jī)網(wǎng)絡(luò)被應(yīng)用于我們生活中的方方面面,可以說(shuō)是網(wǎng)絡(luò)讓我們的生活變得更加美好,更加方便和快捷,我們的生活離不開網(wǎng)絡(luò)基于局域網(wǎng)的即時(shí)通信軟件的核心技術(shù)其實(shí)與基于Internet 的即時(shí)通信軟件的設(shè)計(jì)技術(shù)是一樣的,只是規(guī)模比較小?;贗nternet 的通信工具一般采用TCP或者 UDP 協(xié)議來(lái)實(shí)現(xiàn)的,開發(fā)技術(shù)已經(jīng)非常成熟,它們不僅實(shí)現(xiàn)了即時(shí)聊天、文件傳輸?shù)裙δ?,而且還能夠?qū)崿F(xiàn)即時(shí)視頻、語(yǔ)音聊

3、天功能等。在局域網(wǎng)內(nèi),這類軟件的設(shè)計(jì)比在Internet 中設(shè)計(jì)更為簡(jiǎn)單。因?yàn)镮nternet 是網(wǎng)絡(luò)中的網(wǎng)絡(luò),結(jié)構(gòu)更為復(fù)雜,遇到的情況要比在局域網(wǎng)中還要多。所以說(shuō)局域網(wǎng)的聊天工具的設(shè)計(jì)要相對(duì)簡(jiǎn)單些。而且即時(shí)通信是一個(gè)終端連往一個(gè)即時(shí)通信網(wǎng)絡(luò)的服務(wù)。即時(shí)通信不同于e-mail 在于它的交談是實(shí)時(shí)的。大部分的即時(shí)通信服務(wù)提供了presence awareness的特性顯示聯(lián)絡(luò)人名單,聯(lián)絡(luò)人是否在線與能否和聯(lián)絡(luò)人交談。2.方案設(shè)計(jì)程序采用 JAVA 編程,利用 java 強(qiáng)大的基礎(chǔ)類庫(kù),調(diào)用java 中界面開發(fā)的 swing和網(wǎng)絡(luò)編程的net 函數(shù)群來(lái)完成本次的java socket(網(wǎng)絡(luò)套接字)

4、網(wǎng)絡(luò)即時(shí)通信工具的開發(fā)。 在 java中,可以把發(fā)送的信息看成是一個(gè)一個(gè)的對(duì)象,當(dāng)我們利用可編輯修改精品socket鏈接把客戶端和服務(wù)器鏈接起來(lái)以后,他們之間就可以以對(duì)象流的形式發(fā)送彼此需要通信的信息了。 在 java 的網(wǎng)絡(luò)編程中, 最為核心的就是客戶端和服務(wù)器相互取得 socket的鏈接,只要能夠能夠取得鏈接,其他的工作基本上都是java的面向?qū)ο蟮木幊趟枷肴ネ瓿梢恍┚W(wǎng)絡(luò)通訊的業(yè)務(wù)邏輯的處理。二、需求分析1.功能需求分析1)用戶端之間的信息發(fā)送,本程序需要實(shí)現(xiàn)的最基本的功能。用戶在界面上可以將自己需要發(fā)送的信息填入相應(yīng)的對(duì)話框中,點(diǎn)擊發(fā)送按鈕后, 可以將信息正常的發(fā)送給相應(yīng)的其它用戶, 這

5、個(gè)過(guò)程中的客戶端與客戶端之間使用點(diǎn)對(duì)點(diǎn)發(fā)送信息,預(yù)計(jì)利用TCP/IP 協(xié)議中的 UDP 協(xié)議,在本程序中共需要3 個(gè)端口,此功能預(yù)計(jì)使用 3 號(hào)端口。( 2)在線用戶主機(jī) IP 列表的維護(hù)。在用戶發(fā)送信息之前,需要選擇相應(yīng)的目的地端 IP,這也就需要客戶端擁有在線用戶主機(jī)的IP 地址,這個(gè)在線主機(jī)列表的維護(hù)是需要客戶端定時(shí)自動(dòng)向服務(wù)器端發(fā)送信息,服務(wù)器端收集并維護(hù)在線用戶列表,再發(fā)送回客戶端。需要在客戶端和服務(wù)器端都使用定時(shí)器來(lái)完成此功能。此功能預(yù)計(jì)使用1、 2 號(hào)端口。( 3)在 C/S 模式中,服務(wù)器與客戶端是相互依賴的。在客戶端啟用以后,需要查看服務(wù)器端是否在線,服務(wù)器在線才能正常使用客

6、戶端,如果服務(wù)器不在線,則在檢測(cè)一定次數(shù)以后自動(dòng)退出客戶端程序。 在使用過(guò)程中, 客戶端在指定時(shí)間內(nèi)未向服務(wù)器端發(fā)送信息的, 服務(wù)器認(rèn)為客戶端下線; 客戶端在一定時(shí)間內(nèi)未收可編輯修改精品到服務(wù)器端信息的, 認(rèn)為服務(wù)器已經(jīng)下線, 則提示用戶并建議退出, 在用戶一定時(shí)間后沒(méi)有退出的則自動(dòng)關(guān)閉客戶端程序。2數(shù)據(jù)需求分析( 1)客戶端之間聊天信息。在控件上顯示時(shí)格式化,更易于用戶的查看自己發(fā)送或接收到的信息。( 2)在線用戶聊天信息。服務(wù)器端存放在適當(dāng)?shù)目臻g中,在發(fā)送給客戶端時(shí),對(duì)信息列表進(jìn)行格式化,便于客戶端提取信息。( 3)客戶端向服務(wù)器端發(fā)送的確認(rèn)在線信息。包括客戶端剛剛啟動(dòng)時(shí)的初始化信息和在使

7、用過(guò)程中的確認(rèn)在線信息。( 4)其它程序內(nèi)部可能需要設(shè)計(jì)的數(shù)據(jù)結(jié)構(gòu)體。3性能需求分析( 1)可靠性高,能在由于系統(tǒng)問(wèn)題或其它原因產(chǎn)生錯(cuò)誤后,作出相對(duì)應(yīng)處理,比如網(wǎng)絡(luò)初始化失敗、 服務(wù)器不在線等, 可以提示用戶安全退出本程序, 在出現(xiàn)不可知的錯(cuò)誤以后, 可以盡量安全的退出程序。 在程序的設(shè)計(jì)過(guò)程中, 要求能盡可能多的設(shè)想到用戶使用過(guò)程中可能發(fā)生的事件, 并能在判斷事件后做出相應(yīng)的處理,使程序具有較高的容錯(cuò)性能 2。(2)宜操作性,程序簡(jiǎn)單易懂,容易上手使用。設(shè)計(jì)界面是,簡(jiǎn)化界面的復(fù)雜性,模擬 QQ 等現(xiàn)有即時(shí)通訊工具的界面,使用戶能很容易看懂并使用。( 3)開發(fā)文檔易理解,保證以后自己二次開發(fā)或

8、他人接手開發(fā)時(shí),能夠清晰的理解整個(gè)系統(tǒng)的設(shè)計(jì)思路和實(shí)現(xiàn)細(xì)節(jié)。( 4)模塊化設(shè)計(jì)此軟件的功能,不同的模塊實(shí)現(xiàn)不同的功能,使得軟件易于以可編輯修改精品后的維護(hù)與擴(kuò)展, 在以后可以更好的完善本軟件的功能,更方便于在工作中的應(yīng)用。4運(yùn)行需求分析( 1)用戶界面程序較小,啟動(dòng)速度快??稍诰W(wǎng)絡(luò)中使用,有注冊(cè)功能,需進(jìn)行用戶登錄。啟動(dòng)后的應(yīng)用界面要清爽,設(shè)計(jì)要簡(jiǎn)單明了,要具有較高的易用性。( 2)故障處理在遇到可預(yù)知的故障與情況時(shí),能提示用戶并自動(dòng)退出; 在遇到不可預(yù)知的故障時(shí)能安全退出。三、開發(fā)環(huán)境與工具1.設(shè)計(jì)環(huán)境開發(fā)程序的操作系統(tǒng): Windows7(在 Windows XP、2000里也可以)編譯工

9、具: eclipse程序工程: JAVA 工程, Server和 Client網(wǎng)絡(luò)環(huán)境:局域網(wǎng)(或互聯(lián)網(wǎng)上運(yùn)用,只要安裝客戶端并且知道服務(wù)器端的IP)1.1eclipse 開發(fā)平臺(tái)介紹Eclipe 是著名的跨平臺(tái)的自由集成開發(fā)環(huán)境(IDE )。主要用來(lái)Java 語(yǔ)言開發(fā)。可編輯修改精品Eclipse 的本身只是一個(gè)框架平臺(tái),但是眾多插件的支持,使得Eclipse 擁有較佳的靈活性。許多軟件開發(fā)商都以Eclipse 為框架開發(fā)自己的IDE 。另外由于 eclipse是開源的,所以得到了廣大用戶的認(rèn)可。Eclipse 也于 2001年 11月被它的開發(fā)公司IBM 公司貢獻(xiàn)給開源社區(qū),現(xiàn)在它由非營(yíng)利

10、軟件供應(yīng)商聯(lián)盟Eclipse基金會(huì)( Eclipse Foundation)管理。2.基礎(chǔ)知識(shí)2.1java Socket網(wǎng)絡(luò)編程簡(jiǎn)介Socket 有兩種主要的操作方式:面向連接的和無(wú)連接的。面向連接的sockets 操作就像一部電話, 他們必須建立一個(gè)連接和一人呼叫。所有的事情在到達(dá)時(shí)的順序與它們出發(fā)時(shí)的順序時(shí)一樣。無(wú)連接的sockets 操作就像是一個(gè)郵件投遞,沒(méi)有什么保證 ,多個(gè)郵件可能在到達(dá)時(shí)的順序與出發(fā)時(shí)的順序不一樣。到底用哪種模式是郵應(yīng)用程序的需要決定的。如果可靠性更重要的話,用面向連接的操作會(huì)好一些.比如文件服務(wù)器需要他們的數(shù)據(jù)的正確性和有序性。如果一些數(shù)據(jù)丟失了, 系統(tǒng)的有效性

11、將會(huì)失去。 一些服務(wù)器, 比如間歇性地發(fā)送一些數(shù)據(jù)塊,如果數(shù)據(jù)丟了的話, 服務(wù)器并不想要再重新發(fā)過(guò)一次,因?yàn)楫?dāng)數(shù)據(jù)到達(dá)的時(shí)候,它可能已經(jīng)過(guò)時(shí)了.確保數(shù)據(jù)的有序性和正確性需要額外的操作的內(nèi)存消耗,額外的費(fèi)用將會(huì)降低系統(tǒng)的回應(yīng)速率。無(wú)連接的操作使用數(shù)據(jù)報(bào)協(xié)議。一個(gè)數(shù)據(jù)報(bào)是一個(gè)獨(dú)立的單元,它包含了所有的這次投遞的信息。 把它想象成一個(gè)信封吧, 它有目的地址和要發(fā)送的內(nèi)容。這個(gè)模式下的socket 不需要連接一個(gè)目的的socket,它只是簡(jiǎn)單地投出數(shù)據(jù)報(bào)。無(wú)連接的操作是快速的和高效的,但是數(shù)據(jù)安全性不佳??删庉嬓薷木访嫦蜻B接的操作使用TCP 協(xié)議。一個(gè)這個(gè)模式下的socket 必須在發(fā)送數(shù)據(jù)之前與目

12、的地的socket 取得一個(gè)連接。一旦連接建立了,sockets 就可以使用一個(gè)流接口:打開( -讀-寫 -關(guān)閉)。所有的發(fā)送的信息都會(huì)在另一端以同樣的順序被接收 .面向連接的操作比無(wú)連接的操作效率更低,但是數(shù)據(jù)的安全性更高。java 降低了建立一個(gè)sockets 程序的難度。每一個(gè)傳輸模式都被封裝到了不同的類中。面向連接的類將會(huì)首先被我們討論。到底用哪種模式是郵應(yīng)用程序的需要決定的。 如果可靠性更重要的話, 用面向連接的操作會(huì)好一些。比如文件服務(wù)器需要他們的數(shù)據(jù)的正確性和有序性。如果一些數(shù)據(jù)丟失了, 系統(tǒng)的有效性將會(huì)失去。一些服務(wù)器,比如間歇性地發(fā)送一些數(shù)據(jù)塊,如果數(shù)據(jù)丟了的話,服務(wù)器并不想

13、要再重新發(fā)過(guò)一次。因?yàn)楫?dāng)數(shù)據(jù)到達(dá)的候, 它可能已經(jīng)過(guò)時(shí)了。 確保數(shù)據(jù)的有序性和正確性需要額外的操作的內(nèi)存消耗,額外的費(fèi)用將會(huì)降低系統(tǒng)的回應(yīng)速率 .2.2 套接字的介紹多個(gè) TCP 連接或多個(gè)應(yīng)用程序進(jìn)程可能需要通過(guò)同一個(gè)TCP 協(xié)議端口傳輸數(shù)據(jù)。為了區(qū)別不同的應(yīng)用程序進(jìn)程和連接,許多計(jì)算機(jī)操作系統(tǒng)為應(yīng)用程序與TCPIP 協(xié)議交互提供了稱為套接字(Socket)的接口。套接字,是支持 TCP/IP 的網(wǎng)絡(luò)通信的基本操作單元,可以看做是不同主機(jī)之間的進(jìn)程進(jìn)行雙向通信的端面點(diǎn),簡(jiǎn)單的說(shuō)就是通信的兩方的一種約定,用套接字中的相關(guān)函數(shù)來(lái)完成通信 過(guò)程非常 非 常簡(jiǎn)單的舉例說(shuō)明 下 :Socket=Ipa

14、ddress+ TCP/UDP port. 應(yīng)用層通過(guò)傳輸層進(jìn)行數(shù)據(jù)通信時(shí),TCP 和 UDP 會(huì)遇到同時(shí)為多個(gè)應(yīng)用程序進(jìn)程提供并發(fā)服務(wù)的問(wèn)題??删庉嬓薷木?.3 TCP/IP 協(xié)議簡(jiǎn)介TCP/IP 協(xié)議實(shí)際上就是在物理網(wǎng)上的一組完整的網(wǎng)絡(luò)協(xié)議。其中 TCP 是提供傳輸層服務(wù),而IP 則是提供網(wǎng)絡(luò)層服務(wù)。 TCP/IP 主要包括以下協(xié)議:IP:網(wǎng)間協(xié)議 (Internet Protocol) ,負(fù)責(zé)主機(jī)間數(shù)據(jù)的路由和網(wǎng)絡(luò)上數(shù)據(jù)的存儲(chǔ)。同時(shí)為 ICMP,TCP,UDP 提供分組發(fā)送服務(wù)。 用戶進(jìn)程通常不需要涉及這一層。ICMP:網(wǎng)間報(bào)文控制協(xié)議 (Internet Control Messag

15、e Protocol)此協(xié)議處理網(wǎng)關(guān)和主機(jī)的差錯(cuò)和傳送控制。TCP:傳輸控制協(xié)議 (Transmission Control Protocol)這是一種提供給用戶進(jìn)程的可靠的全雙工字節(jié)流面向連接的協(xié)議。它要為用戶進(jìn)程提供虛電路服務(wù),并為數(shù)據(jù)可靠傳輸建立檢查。四、關(guān)鍵技術(shù)與理論1.JAVA 編程技術(shù)Java是 Sun 公司推出的一種編程語(yǔ)言。 它是一種通過(guò)解釋方式來(lái)執(zhí)行的語(yǔ)言,語(yǔ)法規(guī)則和 C+ 類似。同時(shí), Java也是一種跨平臺(tái)的程序設(shè)計(jì)語(yǔ)言。用Java語(yǔ)言編寫的程序叫做“ Applet” (小應(yīng)用程序 ),用編譯器將它編譯成類文件后,將它存在 WWW 頁(yè)面中,并在 HTML 檔上作好相應(yīng)標(biāo)記

16、,用戶端只要裝上Java的客戶軟件就可以在網(wǎng)上直接運(yùn)行“Applet”。 Java 非常適合于企業(yè)網(wǎng)絡(luò)和Internet環(huán)境,現(xiàn)在已成為 Internet 中最受歡迎、 最有影響的編程語(yǔ)言之一。Java有許多值得稱道的優(yōu)點(diǎn),如簡(jiǎn)單、面向?qū)ο?、分布式、解釋性、可靠、安全、結(jié)構(gòu)可編輯修改精品2.Java Socket網(wǎng)絡(luò)編程接口事實(shí)上網(wǎng)絡(luò)編程, 簡(jiǎn)單的理解就是兩臺(tái)計(jì)算機(jī)相互通訊數(shù)據(jù)而已。對(duì)于程序員而言,去掌握一種編程接口并使用一種編程模型相對(duì)就會(huì)顯得簡(jiǎn)單的多了。Javasdk 提供一些相對(duì)簡(jiǎn)單的api 來(lái)完成這些工作, socket就是其中之一。對(duì)于 java而言,這些 api 存在于 這個(gè)包里面

17、。 因此,只要導(dǎo)入這個(gè)包就可以準(zhǔn)備網(wǎng)絡(luò)編程了。 網(wǎng)絡(luò)編程的基本模型就是客戶機(jī)到服務(wù)器模型。簡(jiǎn)單的說(shuō),就是兩個(gè)進(jìn)程之間相互通訊,然后其中一個(gè)必須提供一個(gè)固定的位置,而另一個(gè)則只需要知道這個(gè)固定的位置,并去建立兩者之間的聯(lián)系。 然后完成數(shù)據(jù)的通訊就可以了。 這里提供固定位置的通常稱為服務(wù)器,而建立聯(lián)系的通常叫做客戶端。基于這個(gè)簡(jiǎn)單的模型,就可以進(jìn)入網(wǎng)絡(luò)編程.對(duì)于 java而言已經(jīng)簡(jiǎn)化了socket的編程接口。首先需要確定有關(guān)提供固定位置的服務(wù)方是如何建立的。 java提供了 serversocket來(lái)對(duì)其進(jìn)行支持。 事實(shí)上當(dāng)創(chuàng)建該類的一個(gè)實(shí)力對(duì)象并提供一個(gè)端口資源,就建立了一個(gè)固定位置可以讓其他計(jì)

18、算機(jī)來(lái)訪問(wèn)。serversocket server=new serversocket(6789);這里稍微要注意的是端口的分配必須是唯一的。因?yàn)槎丝谑菫榱宋ㄒ粯?biāo)識(shí)每臺(tái)計(jì)算機(jī)唯一服務(wù)的。 另外端口號(hào)是從065535之間的,前 1024 個(gè)端口已經(jīng)被 tcp/ip作為保留端口,因此,分配的端口只能是1024 個(gè)之后的。有了固定位置,現(xiàn)在所需要的就是一根連接線了。 該連接線由客戶方首先提出要求。因此 java 同樣提供了一個(gè) socket對(duì)象來(lái)對(duì)其進(jìn)行支持。 只要客戶方創(chuàng)建一個(gè)socket的實(shí)例對(duì)象進(jìn)行支持就可以了。可編輯修改精品socket client=new socket(inetaddres

19、s.getlocalhost(),5678);客戶機(jī)必須知道有關(guān)服務(wù)器的ip 地址。對(duì)于這一點(diǎn), java 也提供了一個(gè)相關(guān)的類inetaddress。該對(duì)象的實(shí)例必須通過(guò)它的靜態(tài)方法來(lái)提供。它的靜態(tài)方法主要提供了得到本機(jī) ip 和通過(guò)名字或 ip 直接得到 inetaddress的方法。i/o 操作總是和網(wǎng)絡(luò)編程息息相關(guān)的。因?yàn)榈讓拥木W(wǎng)絡(luò)是繼續(xù)數(shù)據(jù)的。除非遠(yuǎn)程調(diào)用,處理問(wèn)題的核心在執(zhí)行上。否則,數(shù)據(jù)的交互還是依賴于io 操作的。所以,你也必須導(dǎo)入 java.io這個(gè)包。java的 io 操作也不復(fù)雜。它提供了針對(duì)于字節(jié)流和unicode的讀者和寫者,然后也提供了一個(gè)緩沖用于數(shù)據(jù)的讀寫。buf

20、feredreader in=new bufferedreader(new inputstreamreader(server.getinputstream();printwriter out=new printwriter(server.getoutputstream();上面兩句就是建立緩沖并把原始的字節(jié)流轉(zhuǎn)變?yōu)閡nicode 可以操作。而原始的字節(jié)流來(lái)源于 socket 的兩個(gè)方法, getinputstream()和 getoutputstream()方法,分別用來(lái)得到輸入和輸出。五、相關(guān)圖解及程序1.體系結(jié)構(gòu)設(shè)計(jì)一般的通信工具,都采用客戶端 / 服務(wù)器體系結(jié)構(gòu)??蛻舳?/ 服務(wù)器的結(jié)構(gòu)

21、包含:客戶端和服務(wù)端。 客戶端訪問(wèn)和處理服務(wù)器上的數(shù)據(jù),服務(wù)器接收和處理客戶端的數(shù)據(jù)請(qǐng)求。這種模式的好處就是可以將一個(gè)系統(tǒng)分為兩個(gè)獨(dú)立的部分進(jìn)行開發(fā)可編輯修改精品設(shè)計(jì),便于軟件開發(fā)。 而且也把一個(gè)軟件的功能交給兩個(gè)部分去完成,則更加有效的利用了系統(tǒng)資源。本程序中也采用了簡(jiǎn)單的客戶端/ 服務(wù)器模式。由于本程序比較簡(jiǎn)單, 僅演示客戶端與服務(wù)端進(jìn)行通信。2.具體功能模塊的分析由于該系統(tǒng)采用C/S 模式,所以對(duì)功能模塊進(jìn)行劃分時(shí),就需要分服務(wù)器和客戶端兩部分進(jìn)行。由于服務(wù)器的主要功能是等待接收并反饋客戶端的信息,所以服務(wù)器需要信息輸出模塊和通信模塊。 其中通信模塊包含信息發(fā)送模塊和信息接收模塊。而信息

22、輸出模塊要做到當(dāng)信息發(fā)生改變時(shí)及時(shí)更新。客戶端同樣也需要通信模塊和信息輸出模塊,同時(shí)要互相通信,就要具備輸入輸出。具體模塊劃分見(jiàn)下圖:六、測(cè)試及結(jié)果分析運(yùn)行客戶端:可編輯修改精品運(yùn)行服務(wù)器端:?jiǎn)?dòng)客戶端:可編輯修改精品互發(fā)信息:可編輯修改精品七、心得體會(huì)及時(shí)通信是是網(wǎng)絡(luò)發(fā)展的必然趨勢(shì), 它的技術(shù)仍然在不斷的改進(jìn)和蓬勃發(fā)展中。本次設(shè)計(jì)雖然實(shí)現(xiàn)了簡(jiǎn)單的即時(shí)通信功能,但是從很多方面來(lái)說(shuō)都是不完善的:實(shí)現(xiàn)了字符聊天卻沒(méi)有實(shí)現(xiàn)多媒體即時(shí)通信;實(shí)現(xiàn)了同步套接字聊天和異步套接字傳送文件卻沒(méi)有實(shí)現(xiàn)更科學(xué)的異步套接字聊天和同步套接字傳送文件。由于之前沒(méi)有學(xué)過(guò)Java,所以對(duì) Eclipse 編程環(huán)境幾乎是一無(wú)所

23、知,在程序編譯過(guò)程中遇到的問(wèn)題比較多, 主要是對(duì)那些錯(cuò)誤還有警告開始都不知道什么意思,花了兩天的時(shí)間在程序的調(diào)試上面。另外就是一些概念性的知識(shí)欠缺,尤其是套接字編程原理,所以對(duì)程序的一些函數(shù)的功能用法有些模糊。其實(shí)遇到的種種問(wèn)題主要是兩方面的原因。一個(gè)是基礎(chǔ)知識(shí)的掌握不夠牢固,概念的混淆, 不能夠很快的用最佳的方式去解決遇到的問(wèn)題等等,都是由于知識(shí)的不熟練導(dǎo)致。另一個(gè)就是Java 部分知識(shí)的缺乏,導(dǎo)入文件還有一些參數(shù)的選擇都要查詢一下資料, 主要是第一次操作這方面的知識(shí)。針對(duì)這些問(wèn)題, 主可編輯修改精品要從兩個(gè)方面著手處理應(yīng)該, 一方面是多對(duì)所學(xué)過(guò)的知識(shí)強(qiáng)化溫習(xí),做到熟能生巧,溫故知新。另一方

24、面就是準(zhǔn)備的不夠充分,之前應(yīng)該及早的對(duì)所需軟件進(jìn)行熟悉,在以后的實(shí)習(xí)過(guò)程中需要注意。經(jīng)過(guò)這次課程設(shè)計(jì),我們收獲了很多,也學(xué)習(xí)到了很多。使我對(duì)網(wǎng)絡(luò)的TCP/IP 協(xié)議和網(wǎng)絡(luò)中實(shí)現(xiàn)主機(jī)之間的相互通信的方法有了一定的了解和體會(huì)。通過(guò)這次編程,也加深了對(duì)網(wǎng)絡(luò)編程特別是WinSock 編程的理解。同時(shí)對(duì)java的一些編程技術(shù)的實(shí)現(xiàn)也有了更深入的了解。學(xué)到了到底一些功能要用哪些規(guī)定的函數(shù)來(lái)實(shí)現(xiàn), 以及在用這些函數(shù)的時(shí)候要注意哪些東西,比如說(shuō),要引用規(guī)定的函數(shù)包,設(shè)定規(guī)定的變量、組件,并且在引用的時(shí)候需要注意的東西等。同時(shí)也深刻體會(huì)到 SOCKET 編程的基礎(chǔ)性, 多樣化。由于與網(wǎng)絡(luò)緊密聯(lián)系, SOCKET編程的也可能出現(xiàn)各種未知的問(wèn)題,需要我們更深入地了解網(wǎng)絡(luò)協(xié)議和架構(gòu),才可能做出通用性高,穩(wěn)定性高的即時(shí)通信程序。另外一個(gè)收獲是, 知道了 eclipse這個(gè)軟件開發(fā)程序, 知道了怎么使用它, 并且知道了它的功能強(qiáng)大, 以前總是為了 java的 JCreator安

溫馨提示

  • 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)論