- 相關(guān)推薦
java實訓(xùn)聊天總結(jié)
關(guān)于JAVA聊天室編寫的總結(jié)
在編寫JAVA聊天室的過程中,讓我學(xué)到了很多東西,有知識方面的,而更多的是經(jīng)驗。
從以前學(xué)習(xí)C,到現(xiàn)學(xué)習(xí)JAVA,有很多的地方不習(xí)慣。主要的就是思想不會轉(zhuǎn)變。但是還是有很多相似的地方,
比如,如何實現(xiàn)心中所想的東西時,很多函數(shù)的編寫的方法是類似的,而不同的是JAVA多了繼承、多態(tài)、封裝等等
面向?qū)ο蟮臇|西。所以在整體構(gòu)思方面差異比較大,但是細節(jié)方面還是類似的。
編寫聊天室讓我對面向?qū)ο蟮牧私馑闶歉M一步了。
首先:聊天室實現(xiàn)的就是聊天;用戶與用戶之間實現(xiàn)聊天的功能。
然后:對于聊天這個功能如何實現(xiàn)呢?
1、 要實現(xiàn)用戶與用戶之間的交流,必須要有一個通信實體做出“主動姿態(tài)”,主動接受來自其他通信實體的連接請求。這就是服務(wù)端。
2、 客戶端——用于連接到服務(wù)端,然后實現(xiàn)用戶之間的通信。
所以這里的服務(wù)器和客戶端便是兩個對象,它們能實現(xiàn)用戶之間的通信。
對于總體的構(gòu)思擦不多就是這樣。所以現(xiàn)在需要的便是一步一步的細化下去。、
一、 服務(wù)端
a) 服務(wù)端如何實現(xiàn)主動接受其他通信實體的連接請求?
b) 如何實現(xiàn)客戶端之間信息的收發(fā)?
c) 服務(wù)端應(yīng)該有些什么樣的功能呢?
二、 客戶端
a) 如何連接到服務(wù)端?
b) 客戶端應(yīng)該有些什么樣的功能?
當(dāng)慢慢的思考下去,思想便會慢慢的清楚。
再開始編寫的時候,其實頭是亂的,摸不著頭緒,因為那時候開始的時候便在想:如何寫連接?如何寫收發(fā)信息?如何寫連接?等等。也許這就是學(xué)C的時候的習(xí)慣思想,那時候?qū)戇^的最大的程序便是俄羅斯方塊,其余的便是在搞算法。不過當(dāng)自己慢慢的習(xí)慣JAVA的編程思想之后,便是好多了。
對于服務(wù)端和客戶端的設(shè)計
1、 服務(wù)器端的主要功能:
a) 在特定的端口上進行監(jiān)聽,等待客戶端連接。
b) 默認(rèn)端口為30000 。
c) 向已經(jīng)連接到服務(wù)的用戶發(fā)送系統(tǒng)消息。
d) 統(tǒng)計在線人數(shù)。
e) 當(dāng)停止服務(wù)器時,斷開所有的用戶連接。
2、 客戶端的主要功能:
a) 連接到已經(jīng)開啟的聊天服務(wù)的服務(wù)端。
b) 用戶可以配置連接后顯示的用戶名。
c) 當(dāng)服務(wù)器端開啟的話,用戶可以隨時登陸和注銷。
d) 用戶可以向所有人或者某一個人發(fā)送消息。
主要類和方法:
一、服務(wù)端:
1、ChatSever 便是服務(wù)器的主框架了。包括服務(wù)器的屬于的定義、
組件的組合、事件的處理等等。
2、ServerListen 類是服務(wù)端的監(jiān)聽類。監(jiān)聽客戶端是否連接。
3、ServerReceive 類是接收和發(fā)送客戶端、服務(wù)端的消息。
4、LNode 類封裝了用戶的屬性。
5、UserLinkList 類則是封裝了對用戶操作的方法。如:添加、查找、刪除等;
6 ServerHelp 類這是幫助板塊。
二、客戶端
1、Client 類 則是客戶端的主要框架。
2、UserSet 類 是對用戶名的設(shè)置和修改。
3、ClientReceive 類 實現(xiàn)客戶端和服務(wù)端消息的收發(fā)。
4、ClientHelp 類 這是幫助板塊。
(具體代碼就不發(fā)了,太多了。。)
對于聊天室的編寫部分已經(jīng)完成了,接下來便是完善它的功能和修復(fù)它的一些BUG。因為發(fā)現(xiàn)有很多地方有BUG:
1、 客戶端無法接收到服務(wù)端發(fā)出的系統(tǒng)消息。
2、 服務(wù)端無法收到客戶端下線的消息,導(dǎo)致服務(wù)端無法刪除以下線的客戶端。所以客戶端連接重復(fù)。
3、 當(dāng)服務(wù)端停止服務(wù)時,客戶端未斷線。
4、 客戶端不能接收到其他客戶端的上線和下線消息。
目前發(fā)現(xiàn)的BUG就是以上幾個。同時除了BUG以外,還發(fā)現(xiàn)很多的不足:
1、 客戶端的IP設(shè)置是不能改變的,所以當(dāng)服務(wù)端換IP時,客戶端需要從源代碼中去修改,導(dǎo)致不方便。
2、 服務(wù)端、客戶端沒有設(shè)置快捷按鈕,導(dǎo)致每次啟動都要通過“菜單”來啟動和連接。
3、 所有的表現(xiàn)都是以文字表現(xiàn)的不能接收和發(fā)送圖片。
以上是目前發(fā)現(xiàn)的不足點。希望能在修改之后得到完善。
JAVA實訓(xùn)心得
在本學(xué)期的最后一周,我們在學(xué)校機房進行了為期一周的JAVA實訓(xùn),F(xiàn)在即將結(jié)束了,回首本學(xué)期的java學(xué)習(xí),重點還是在學(xué)習(xí)概念等一些常識性的東西,Application應(yīng)用程序和Applet小程序,它的開發(fā)工具,數(shù)據(jù)類型,變量,接口,輸入輸出流,學(xué)會分析異常,拋出異常,后期主要是小程序運用,Gui界面設(shè)計和事件。我覺得這兩種程序結(jié)構(gòu)有很大的不同,不管是體系結(jié)構(gòu)還是運行方式,都有很大的區(qū)別,我主要偏向于小程序的學(xué)習(xí),呵呵,因為感覺它用處比較大,可以做出好多好多好玩的游戲,運用程序等,且它靈活。呵呵,當(dāng)然學(xué)知識可不能憑自己的愛好和一時興趣,要一步一個腳印,認(rèn)認(rèn)真真,踏踏實實,理論與實踐相結(jié)合,在扎實掌握課本實例和內(nèi)容之后,有一定的擴展閱讀和課外學(xué)習(xí),充分全面的了解JAVA的應(yīng)用和擴展運用。
在我所學(xué)的語言當(dāng)中,我自認(rèn)為JAVA是一門比較強大的面向?qū)ο蟮木幊陶Z言,不僅僅因為它的跨平臺性,更多的是因為它的靈活多變和實用性較強,可以說比較的經(jīng)典和強悍。
所以學(xué)好java語言有很大的用處,這次實訓(xùn),面對一道陌生的題目和要求時,不應(yīng)慌張和無措,首先應(yīng)該想到這和課本上的哪些知識具有結(jié)合點,回憶和分析這種結(jié)構(gòu)的算法和具體實施方法,綜合考慮其他的方面,例如:該題的易寫性和易懂性及其他的問題的可利用性。在編寫時,一個小小的符號,一個常量變量的設(shè)定,這都無不考量著我們的細心和嚴(yán)謹(jǐn),所以學(xué)習(xí)JAVA,不僅對我們以后學(xué)習(xí)其他語言有很大的好處,而且也讓我們知道了和理解了作為一個編程人員首先應(yīng)具有的良好心理素質(zhì),那就是冷靜思考和專心致志。對待學(xué)術(shù)知識應(yīng)該是嚴(yán)謹(jǐn)和認(rèn)真。
這次實訓(xùn),我們更多學(xué)到的是不懂就問和自己應(yīng)該盡自己的全力去嘗試,哪怕失敗,只要自己盡自己的全力,和身邊同學(xué)一起探討而不是抄襲,團結(jié)合作,發(fā)揮團隊意識,最后在自己的努力下,終于運行成功,這種成就感美不可言,心情愉悅至極。
最后終于要結(jié)束了,大家都有種釋懷的感覺,當(dāng)然我想我更多的是興奮和自己掌握了知識之后的飽滿感,學(xué)知識就像吃東西一樣,吃飽了就應(yīng)該好好的消化。要不斷的溫習(xí)和運用,做到舉一反三,將所學(xué)知識充分融入到平時的學(xué)習(xí)生活中去,為以后的工作做好堅實的基礎(chǔ)。感謝學(xué)校和老師能夠為我們提供這次機會,讓我們更好的掌握和了解JAVA這門語言。謝謝!
【java實訓(xùn)聊天總結(jié)】相關(guān)文章:
java實訓(xùn)聊天系統(tǒng)報告總結(jié)10-08
java實訓(xùn)總結(jié)11-18
java實訓(xùn)個人總結(jié)11-17
java實訓(xùn)總結(jié)收獲10-08
java實訓(xùn)工作總結(jié)06-23