資源描述:
《java局域網(wǎng)實時聊天系統(tǒng)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、《JAVA程序設(shè)計項目教程》期末作品設(shè)計局域網(wǎng)實時聊天系統(tǒng)專業(yè)班級軟件S131學號13305131姓名日期一2015年6月25日目錄1理論慕礎(chǔ)31.1套接字通信31.2JAVASockets編程概述:31.3Java中輸入/輸出流概念44Java語言41.5與Socket有關(guān)的java類:62程序功能的實現(xiàn)72.1程序的結(jié)構(gòu)72登錄端的開發(fā)72.3主界面的開發(fā)82.4服務(wù)器端的開發(fā)82.5客戶端的開發(fā)93程序的具體代碼103.1登陸界面103.2主窗口123.3服務(wù)器端的實現(xiàn)143.4客戶端的實
2、現(xiàn)17局域網(wǎng)實時聊天系統(tǒng)--利用JavaSock實現(xiàn)雙機通信摘要:本文基于傳輸層(TCP協(xié)議)和網(wǎng)絡(luò)層(IP協(xié)議)利用JavaSocket(套接字)來實現(xiàn)雙機通信,它采川客戶/服務(wù)器通信機制,使客戶端和服務(wù)器端通過Socket接口在網(wǎng)絡(luò)上實現(xiàn)連接和數(shù)據(jù)交換。通過本文對Socket通信的實現(xiàn)簡單的分析和講解,讓大家對Socket的原理有一個較清晰的認識。關(guān)鍵詞:JAVA通信、套接字、SocketServer類、客戶機/服務(wù)器模式1理論基礎(chǔ)1.1套接字通信套接字(Socket)是網(wǎng)絡(luò)通信的基本單元操
3、作,又被稱作端口,通常用來實現(xiàn)客戶端和服務(wù)器的連接。兩個程序通過一個雙向的通信連接實現(xiàn)數(shù)據(jù)的交換,在實現(xiàn)雙向通信前鏈路的每一個端都建立一個Socket,通過對Socket的讀/寫操作實現(xiàn)網(wǎng)絡(luò)通信功能。套接字是網(wǎng)絡(luò)通信的一個標準。1.2JAVASockets編程概述:用Java語言編程實現(xiàn)Socket通信,其原理與使用其他語言某木相同,不同Z處是:(1)java是跨平臺的編程語言,所以用java編寫的Socket通信程序可以工作在所有支持TCP/IP協(xié)議和java的軟碩件平臺上;(2)因為Java
4、是面向?qū)﹀璧恼Z言,所以在編程中需要使用一些與Socket有關(guān)的系統(tǒng)類,其中用于實現(xiàn)流Socket的類主要有:InetAddress類,Socket類,ServerSocket類。InetAddress類的對彖用來保存IP地址,Socket類的對象用來創(chuàng)建Socket通信的客戶端,Socket通信的服務(wù)器端則有ServerSocket類的對象來實現(xiàn),用上述幾個類就可以很方便的牛成用戶&己的TCP/IP通信程序。這兒個類都屈于Java,net包,人部分川來處理網(wǎng)絡(luò)操作的系統(tǒng)類都包含在這個包中,所以用
5、JAVA編寫程序是,一般要在程序開始部分川import語句加載這個包,以便引入這些類。用JAVA語言編寫Socket程序的過程就是創(chuàng)建和定義Socket類和ServerSocket.類的了類的過程。1.3Java中輸入/輸出流概念過濾流DatalnputStream和DataOutputStream除了分別作為FliterInputStream和FilterOutputStream的子類外,還分別實現(xiàn)了接口DataInput和DataOutputo接口DataTnput中定義的方法主要包括從流中
6、讀取棊木類型的數(shù)據(jù)、讀取一行數(shù)據(jù)、或者讀取指定長度的字節(jié)數(shù),如readBoolean()readlnt()>readLineO>readFully()等。接口DataOutput定義的方法主要是向流小寫入基本類型的數(shù)據(jù)或者寫入一定長度的字節(jié)數(shù)組,如writoChar()>writeDoublo()DatalnputStream可以從所連接的輸入流中讀収與機器無關(guān)的基本類型數(shù)據(jù),用以實現(xiàn)一種獨立于具體平臺的輸入方式;DatalnputStream可以向所連接的輸出流寫入基本類型的數(shù)據(jù)。1.4Jav
7、a語言Java語言的優(yōu)點主要表現(xiàn)在:簡單、面向?qū)ο?、多線程、分布性、體系結(jié)構(gòu)中立、安全性等方面。(1)簡單性Java與C++語言非常相近,但Java比C++簡單,它拋棄了C++屮的一些不是絕對必要的功能,如頭文件、預(yù)處理文件、指針、結(jié)構(gòu)、運算符重載、多重繼承以及白動強迫同型。Java實現(xiàn)了自動的垃圾收集,簡化了內(nèi)存管理的工作。這使程序設(shè)計更加簡便,同時減少了出錯的可能。(2)而向?qū)ο驤ava提供了簡單的類機制和動態(tài)的構(gòu)架模型。對象屮封裝了它的狀態(tài)變量和方法,很好地實現(xiàn)了模塊化和信息隱藏;而類則提
8、供了-?類對象的原型,通過繼承和重載機制,子類可以使用或重新定義父類或超類所提供的方法,從而既實現(xiàn)了代碼的復用,又提供了一種動態(tài)的解決方案。Java是一種完全而向?qū)ο蟮某绦蛟O(shè)計語言,它除了數(shù)組、布爾和字符三個基木數(shù)據(jù)類型外的其它類都是對彖,它不再支持全局變量。在Java中,如果不創(chuàng)建新類就無法創(chuàng)建程序,Java程序在運行時必須先創(chuàng)建一個類的實例,然后才能提交運行。Java同樣支持繼承特性,兀眩的類可以從一其它類中繼承行為,但Java只支持類的單重繼承,即每個類只能從一個類中繼承。Java支持界而