• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Java的網(wǎng)絡(luò)版JQ開發(fā)心得

      2017-05-04 18:24:14聶稱心杜月瑩吉璇
      藝術(shù)科技 2016年12期
      關(guān)鍵詞:面向?qū)ο?/a>

      聶稱心+杜月瑩+吉璇

      摘 要:Java語言誕生于1991年,起初他只是Sun公司為自己旗下的一些消費(fèi)性電子產(chǎn)品所設(shè)計的通用環(huán)境,在那個年代,硬件領(lǐng)域出現(xiàn)了單片式計算機(jī)系統(tǒng),這種價格低廉的系統(tǒng)一出現(xiàn)就立即引起了自動控制領(lǐng)域人員的注意。Sun公司研發(fā)人員根據(jù)嵌入式軟件的要求對C++進(jìn)行了改造,去除了留在C++的一些不太實(shí)用及影響安全的成分,并結(jié)合嵌入式系統(tǒng)的實(shí)時性要求,開發(fā)了Oak面向?qū)ο笳Z言,Java的前身誕生了。經(jīng)過對oak語言的一系列修改,Java在James Gosling手中誕生了。

      關(guān)鍵詞:Java;James Gosling;面向?qū)ο?;Oak

      說到Java開發(fā),就不得不談一談Java語言的特點(diǎn),與其他語言相比,Java的可移植性、安全性較好,并提供了并發(fā)機(jī)制,具有很高的性能。其次,Java語言也最大限度地利用了網(wǎng)絡(luò),App在互聯(lián)網(wǎng)上傳輸可以不受CPU和環(huán)境的限制。其次,他還提供了豐富的內(nèi)庫供使用者選擇,當(dāng)然,這些庫的底層都是由C和C++編寫的。

      下面,筆者就基于網(wǎng)絡(luò)版的JQ開發(fā)來粗淺地談?wù)勎已壑械腏ava開發(fā)。娛樂聊天作為一個人們津津樂道的話題,早已深入人心,為了滿足筆者的“一己私欲”,特此開發(fā)出了類似QQ的一款聊天工具——JQ 1.0。在聊天界面中,一般由客戶端和服務(wù)器端兩個部分組成,服務(wù)器端主要是負(fù)責(zé)客戶端的連接、信息的傳遞,將客戶端A的消息傳遞給客戶端B,說起來你們可能不信,QQ的開發(fā)也是基于這個原理。也就是說,只要你是通過這個服務(wù)器發(fā)送的消息,就沒有他查不到的,只要你通過這個平臺,就沒有任何隱私可言。在客戶端與服務(wù)器端的數(shù)據(jù)傳輸中,我們需要使用到TCP和UDP協(xié)議。粗略地說一下這兩個協(xié)議,雙方都是一種網(wǎng)絡(luò)傳輸協(xié)議,TCP需要建立連接,而UDP不需要建立連接(無連接傳輸)。

      TCP屬于可靠的傳輸協(xié)議:因?yàn)閭鬏斍半p方建立了連接,相當(dāng)于買賣雙方建立好了交易合同,傳輸中一般不會出現(xiàn)意外,直到連接終止;UDP屬于不可靠的傳輸協(xié)議:UDP的所謂連接相當(dāng)于一種映射,UDP單方面的認(rèn)為目標(biāo)地址(端口)是可用的,從而進(jìn)行收發(fā)數(shù)據(jù),而實(shí)際上目標(biāo)地址(端口)未必可用,所以傳輸數(shù)據(jù)不可靠。由于TCP需要建立真實(shí)的連接,所以消耗服務(wù)器的負(fù)載要大于UDP,通過分析這些特點(diǎn),信息傳輸一般會使用UDP協(xié)議。

      在進(jìn)行編寫程序的初期,我們需要明白,既然是聊天室就要有多個客戶端連接一個服務(wù)器端來達(dá)到大家在同一個聊天室中聊天的目的,因此,我們用到了線程,一個進(jìn)程都有獨(dú)立的代碼和數(shù)據(jù)空間,進(jìn)程間的切換會有較大的開銷,一個進(jìn)程包含1--n個線程。同一類線程共享代碼和數(shù)據(jù)空間,每個線程有獨(dú)立的運(yùn)行棧和程序計數(shù)器(PC),線程切換開銷小,多進(jìn)程是指操作系統(tǒng)能同時運(yùn)行多個任務(wù)(程序)。多線程是指在同一程序中有多個順序流在執(zhí)行。其中,創(chuàng)建線程有兩個方法,一個是繼承Thread類,并重寫其中的run( )方法,一個是實(shí)現(xiàn)Runnable接口,定義其中的run( )方法。

      class A extends Thread{ }//創(chuàng)建一個A類,

      /*部分代碼略*/

      //啟動線程并重寫其中的run( )方法

      Thread a=new Thread(new A(){

      public void run(){ }

      }).start();

      服務(wù)器端通過系統(tǒng)調(diào)用創(chuàng)建一個ServerSocket的類指定的本地端口綁定,就可以在端口進(jìn)行偵聽。首先,服務(wù)器端需要先定義一個沒有被占用的端口,并設(shè)置本機(jī)在局域網(wǎng)中IP地址,客戶端指定服務(wù)器的主機(jī)地址和端口號向服務(wù)器發(fā)送連接請求,如果有客戶端連接請求,將請求發(fā)送服務(wù)器端,經(jīng)服務(wù)器端同意后方可連接成功。這就是利用UDP協(xié)議來進(jìn)行局域網(wǎng)之間的通信連接,一方?jīng)Q定結(jié)束通信,向?qū)Ψ桨l(fā)送結(jié)束信息,另一方收到結(jié)束信息后,雙方分別關(guān)閉各自的連接。對象停止等候客戶端連接請求反之,在客戶端程序相對簡單,只需要建立一個Socket與服務(wù)器端連接,成功后通過多線程來加載不同的用戶,過IO流來進(jìn)行數(shù)據(jù)的寫入和數(shù)據(jù)的讀取。準(zhǔn)確地說,是通過流中的高級流序列化流和反序列化流來進(jìn)行數(shù)據(jù)的交互。

      以服務(wù)器所在的主機(jī)的IP為“111.111.111.111”所偵聽的端口號為“8088”。分別先后啟動服務(wù)器和客戶端應(yīng)用程序,客戶端用戶填入登錄信息,當(dāng)服務(wù)器收到客戶端的登錄請求后,若驗(yàn)證登錄信息正確,則向客戶端發(fā)送一個反饋一個登錄成功的消息,客戶端和服務(wù)器通過套接字建立了聯(lián)系。建立連接后雙方就可以相互通信:客戶端在自己的文本框輸入要發(fā)送的信息,點(diǎn)擊發(fā)送后,發(fā)送的信息就會顯示在服務(wù)器和目的客戶端的文本域中,同樣,服務(wù)器也可以在自己的文本框輸入系統(tǒng)信息,點(diǎn)擊發(fā)送信息按鈕后,發(fā)送的信息就會顯示在服務(wù)器和客戶端的文本域中。如若要發(fā)送文本文件,在客戶端界面點(diǎn)擊“瀏覽”,顯示一個打開對話框,在上面選擇你要發(fā)送的文本(*.txt)點(diǎn)擊發(fā)送,服務(wù)器再將文檔發(fā)給目的用戶,將在目的用戶的聊天記錄文本框中顯示整個文檔的內(nèi)容。以上就是筆者做JQ開發(fā)的一點(diǎn)心得,望讀者批評指正。

      參考文獻(xiàn):

      [1] David Flanagan . JAVA技術(shù)手冊(第4版)[M].清華大學(xué)出版社,2011.

      [2] Stephanie Bodoff . he J2EE Tutorial(中文)[M].顏承,等,譯.中國鐵道出版社,2012.

      [3] Marty Hall,Larry Brown . Servlet與JSP核心編程[M].趙學(xué)良,譯.清華大學(xué)出版社,2014.

      猜你喜歡
      面向?qū)ο?/a>
      面向?qū)ο蟮挠嬎銠C(jī)網(wǎng)絡(luò)設(shè)計軟件系統(tǒng)的開發(fā)
      電子測試(2018年15期)2018-09-26 06:01:34
      面向?qū)ο蟮臄?shù)據(jù)交換協(xié)議研究與應(yīng)用
      基于面向?qū)ο蟮腛ffice評測系統(tǒng)的分析
      峰叢洼地農(nóng)作物面向?qū)ο笮畔⑻崛∫?guī)則集
      遙感信息(2015年3期)2015-12-13 07:26:54
      面向?qū)ο蟮腟oS體系結(jié)構(gòu)建模方法及應(yīng)用
      面向?qū)ο笮畔⑻崛≈杏跋穹指顓?shù)的選擇
      河南科技(2014年10期)2014-02-27 14:09:03
      日喀则市| 上饶市| 且末县| 抚宁县| 朝阳县| 灌南县| 开鲁县| 青海省| 桂阳县| 抚远县| 当阳市| 改则县| 两当县| 同心县| 武川县| 洛南县| 临洮县| 陇西县| 淮安市| 元氏县| 桂林市| 济南市| 五大连池市| 福海县| 如东县| 二手房| 宝鸡市| 雅安市| 崇阳县| 盱眙县| 诸城市| 阆中市| 阿拉尔市| 通许县| 夹江县| 罗甸县| 安丘市| 荥阳市| 农安县| 沙田区| 安平县|