【正文】
重寫run方法,使用該子類創(chuàng)建的對(duì)象即為線程。Java語(yǔ)言是解釋型的。Java通常被用在網(wǎng)絡(luò)環(huán)境中,為此,Java提供了一個(gè)安全機(jī)制以防惡意代碼的攻擊。Java語(yǔ)言是分布式的。 Java語(yǔ)言是簡(jiǎn)單的。隨著Java的開源,Java的未來似乎變得更加明朗。隨著人們對(duì)桌面應(yīng)用的要求越來越高,系統(tǒng)將變得越來越復(fù)雜。在進(jìn)入21世紀(jì)以來,Java的主要問題就是性能。另外Java2還在多線程、集合類和非同步類上做了大量的改進(jìn)。如用于JCA和JCE的第三方加密類庫(kù)。這個(gè)時(shí)期也是Java飛速發(fā)展的時(shí)期。其實(shí)Java的誕生頗有那么一股“有心栽花花不開,無心插柳柳成陰”的味道。現(xiàn)在讓我們進(jìn)入時(shí)間隧道,重新回到1995年,再來回顧一下Java的發(fā)展軌跡和歷史變遷。 騰訊服務(wù)器客戶端模型1與騰訊不同,微軟的MSN Messenger只使用了TCP作為傳輸層通信協(xié)議,所有客戶端與服務(wù)器進(jìn)行連接,然后通過與服務(wù)器的TCP連接進(jìn)行中轉(zhuǎn)通信。聊天系統(tǒng)完成后將可進(jìn)行多人對(duì)多人的聊天,對(duì)好友進(jìn)行添加、刪除,對(duì)新用戶的注冊(cè),發(fā)送消息、接受消息等等功能。在網(wǎng)絡(luò)越來越發(fā)達(dá)的今天,人們對(duì)網(wǎng)絡(luò)的依賴越來越多,越來越離不開網(wǎng)絡(luò),由此而產(chǎn)生的局域網(wǎng)通訊軟件越來越多,尤其是聊天功能的軟件越來越多!例如,國(guó)外的ICQ、國(guó)內(nèi)騰訊公司開發(fā)的OICQ。【關(guān)鍵詞】多線程 ;客戶機(jī)/服務(wù)器 ;JAVA ; Socket ; Eclipse ; TCP/IPThe design and implementation of the LAN chat system【Abstract】This paper introduces in detail the development and chat systems LAN process, because now network technology is developing very rapidly, and chat system can solve the problem, convenient munication, so extraordinarily popular kiss ignorance. The project adopts the method of software engineering, the integrated use of database technology, program design technology, network technology, eclipse development tool to Java language as a system receptionist application development tools. The LAN chat by client/server tool (C/S) mode and TCP connection. In this design will client and server in a program inside, integrated with multithread achieved different parallel task and human interface design use rise more convenient function is reasonable. Finally achieved LAN munications. This system operation simple, flexible and steady.【Key words】multithreading ;Client/server ;JAVA ; Socket ; Eclipse ; TCP/IP山東農(nóng)業(yè)大學(xué)學(xué)士學(xué)位論文1 緒論 引言局域網(wǎng)通訊(Local Network,簡(jiǎn)稱LNLNIM)是指能夠即時(shí)發(fā)送和接收互聯(lián)網(wǎng)消息等的業(yè)務(wù)。本項(xiàng)目采用軟件工程的方法,綜合運(yùn)用數(shù)據(jù)庫(kù)技術(shù)、程序設(shè)計(jì)技術(shù)、網(wǎng)絡(luò)技術(shù),以java為開發(fā)語(yǔ)言以eclipse開發(fā)工具作為系統(tǒng)前臺(tái)應(yīng)用程序開發(fā)工具。是一種終端連往即時(shí)通訊網(wǎng)絡(luò)的服務(wù)。本系統(tǒng)建立在JAVA平臺(tái)上,系統(tǒng)的設(shè)計(jì)使用了面向?qū)ο蠹夹g(shù)和面向?qū)ο蟮脑O(shè)計(jì)原則。騰訊無疑是國(guó)內(nèi)即時(shí)通訊市場(chǎng)的霸主,自從99年進(jìn)入即時(shí)通訊領(lǐng)域并迅速占市場(chǎng)之后,其在國(guó)內(nèi)用戶數(shù)量始終高居榜首,即使近幾年面對(duì)微軟MSN的強(qiáng)大攻勢(shì),騰訊的時(shí)常占有率依然穩(wěn)步增長(zhǎng)。綜合騰訊和微軟MSN Messenger的特點(diǎn),我打算在我的系統(tǒng)中嘗試建立其類似騰訊的服務(wù)器客戶端模型,但以單服務(wù)器提供服務(wù)。 1991年4月,Sun公司的James Gosling領(lǐng)導(dǎo)的綠色計(jì)劃(Green Project)開始著力發(fā)展一種分布式系統(tǒng)結(jié)構(gòu),使其能夠在各種消費(fèi)性電子產(chǎn)品上運(yùn)行。已經(jīng)初具規(guī)模。不僅如此。Swing是Java的另一個(gè)圖形庫(kù)。 ,主要表現(xiàn)在一些類庫(kù)上(如數(shù)學(xué)運(yùn)算、新的Timer API等)、在JNDI接口方面增加了一些DNS的支持、增加了JNI的支持,這使得Java可以訪問本地資源了、支持XML以及使用新的Hotspot虛擬機(jī)代替了傳統(tǒng)的虛擬機(jī)。同時(shí)由于Compaq、Fujitsu、 SAS、 Symbian、 IBM等公司的參與。” Sun公司總裁兼首席運(yùn)營(yíng)官Jonathan Schwartz先生指出,來自Java社團(tuán)和IBM等全球技術(shù)合作伙伴兩方面的支持,乃是Java技術(shù)在創(chuàng)新和社會(huì)進(jìn)步上繼續(xù)發(fā)揮重要作用的強(qiáng)有力的標(biāo)志。瘦客戶機(jī)、微小的傳感器以及其它Java驅(qū)動(dòng)的小裝置,可以幫助我們改善人們的生活。特別地,Java語(yǔ)言不使用指針,并提供了自動(dòng)的廢料收集,使得程序員不必為內(nèi)存管理而擔(dān)憂。Java語(yǔ)言是健壯的。Java程序(后綴為java的文件)在Java平臺(tái)上被編譯為體系結(jié)構(gòu)中立的字節(jié)碼格式(后綴為class的文件), 然后可以在實(shí)現(xiàn)這個(gè)Java平臺(tái)的任何系統(tǒng)中運(yùn)行。Java是高性能的。 Java語(yǔ)言支持多個(gè)線程的同時(shí)執(zhí)行,并提供多線程之間的同步機(jī)制(關(guān)鍵字為synchronized)。Java的編譯一次,到處可運(yùn)行的特性使得它能夠提供一個(gè)隨處可用的開放結(jié)構(gòu)和在多平臺(tái)之間傳遞信息的低成本方式。(2)服務(wù)器,在接收到客戶端的請(qǐng)求后(確保同客戶端的通信信道建立)服務(wù)器會(huì)向客戶端提供服務(wù)。 服務(wù)器和客戶機(jī)網(wǎng)絡(luò)最基本的目的就是讓兩臺(tái)機(jī)器連接到一起,并相互“交談”或者“溝通”。從這時(shí)開始,我們可以象讀寫一個(gè)普通的文件那樣對(duì)待連接。學(xué)校校園網(wǎng)的建設(shè)也為新系統(tǒng)服務(wù)器/客戶端的結(jié)構(gòu)提供了硬件的支持。可應(yīng)用于企業(yè)辦公室,以及校園電子閱覽室操作簡(jiǎn)單:本系統(tǒng)應(yīng)該適用于不同水平的使用者,包括事業(yè)單位和企業(yè)單位,同時(shí)系統(tǒng)不應(yīng)太復(fù)雜和煩瑣,因此要求系統(tǒng)的操作盡可能簡(jiǎn)單易行。因此,在設(shè)計(jì)聊天系統(tǒng)的過程中,必須要考慮好以下幾個(gè)設(shè)計(jì)要點(diǎn):在Internet上的聊天程序一般都是以服務(wù)器提供服務(wù)端連接響應(yīng),使用者通過客戶端程序登錄到服務(wù)器,就可以與登錄在同一服務(wù)器上的用戶交談,這是一個(gè)面向連接的通信過程。 為客戶端程序登錄界面,負(fù)責(zé)用戶帳號(hào)信息的驗(yàn)證與反饋。4 詳細(xì)設(shè)計(jì) 系統(tǒng)流程圖 系統(tǒng)服務(wù)器端流程圖 系統(tǒng)服務(wù)器端流程圖 系統(tǒng)客戶端流程圖 客戶端流程圖 系統(tǒng)的實(shí)現(xiàn) 問題陳述 1. 接受用戶注冊(cè)信息并保存在數(shù)據(jù)庫(kù)。//創(chuàng)建輸入流 out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(())),true)。//設(shè)定數(shù)據(jù)庫(kù)查尋條件 …… }(2)數(shù)據(jù)庫(kù)在程序中的應(yīng)用 Java提供了強(qiáng)大的API功能JDBC則是專門為了解決程序與數(shù)據(jù)庫(kù)連接問題而建立的API,而本程序采用了Java API中提供的介于前端應(yīng)用程序與后端數(shù)據(jù)源之間,作為數(shù)據(jù)訪問溝通的橋梁之一的JDBCODBC橋,應(yīng)用程序通過它可以調(diào)用ODBC連接數(shù)據(jù)源(),由于Microsoft Windows操作系統(tǒng)中的ODBC大多已支持各種類的數(shù)據(jù)源,Microsoft SQL Server正是Microsoft Windows操作系統(tǒng)中的ODBC支持的數(shù)據(jù)源之一,因此在建構(gòu)上較為方便,可直接使用JDK所附加的驅(qū)動(dòng)程序進(jìn)行連接:。還有通知好友、新建用戶、讀取資料、添加好友、添加好友應(yīng)答、刪除好友、退出下線功能的實(shí)現(xiàn)都是用同樣的方法來調(diào)取數(shù)據(jù)庫(kù)的,這些功能的實(shí)現(xiàn)均在Server類中一一實(shí)現(xiàn)。try{ while(true){Socket socket=()。import .*。private BufferedReader in。 String str= 。 //}while(!(ok))。 (0)。 (serverport)。(().trim())。 else{//如果成功就告訴用戶其號(hào)碼 (this,your javaicqis+no,ok,)。主程序如下所示:Public class MainWin extends JFrame implements Runnable{public MainWin(int s,String sername,int serport) {//主程序構(gòu)造函數(shù) enableEvents()。(200,150,300,300)。(zhy+()+:+()+,+()+())。消息發(fā)送是通過調(diào)用DategramSocket對(duì)象的send方法實(shí)現(xiàn)的,它需要以DategramPacket對(duì)象為參數(shù),將剛才封裝進(jìn)DategramPacket對(duì)象中的數(shù)據(jù)組成數(shù)據(jù)報(bào)發(fā)送出去的。 (sendPacket)。 Public int getLength():返回發(fā)送或接受消息的長(zhǎng)度。 參考文獻(xiàn)[1]]Rogers Cadenhead. :人民郵電出版社,2007[2][美]Bruce Eckel. Thinking In :機(jī)械工業(yè)出版社,2007[3] :清華大學(xué)出版社,2006[4] :中國(guó)水利水電出版社,2006[5] :清華大學(xué)出版社,2006[6] ——:西安電子科技大學(xué)出版社,2006[7] :中國(guó)水利水電出版社,2006[8] :清華大學(xué)出版社,2006[9] :清華大學(xué)出版社,2006[10] :冶金工業(yè)出版社,2006[11] :清華大學(xué)出版社,2006[12] :機(jī)械工業(yè)出版社,2006[13] [美]Herbert :清華大學(xué)出版社,2006[14] :機(jī)械工業(yè)出版社,2006[15] :清華大學(xué)出版社,2006[16] :清華大學(xué)出版社,2006[17] :北京郵電大學(xué)出版社,2005[18] :人民郵電出版社,2005[19] [20] 總結(jié)本