亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

        聶稱心+杜月瑩+吉璇

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

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

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

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

        TCP屬于可靠的傳輸協(xié)議:因?yàn)閭鬏斍半p方建立了連接,相當(dāng)于買(mǎi)賣(mài)雙方建立好了交易合同,傳輸中一般不會(huì)出現(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,通過(guò)分析這些特點(diǎn),信息傳輸一般會(huì)使用UDP協(xié)議。

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

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

        /*部分代碼略*/

        //啟動(dòng)線程并重寫(xiě)其中的run( )方法

        Thread a=new Thread(new A(){

        public void run(){ }

        }).start();

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

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

        參考文獻(xiàn):

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

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

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

        猜你喜歡
        面向?qū)ο?/a>
        面向?qū)ο蟮挠?jì)算機(jī)網(wǎng)絡(luò)設(shè)計(jì)軟件系統(tǒng)的開(kāi)發(fā)
        面向?qū)ο蟮臄?shù)據(jù)交換協(xié)議研究與應(yīng)用
        基于面向?qū)ο蟮腛ffice評(píng)測(cè)系統(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
        大肉大捧一进一出好爽视频| 日本激情久久精品人妻热| 被群cao的合不拢腿h纯肉视频| 76少妇精品导航| WWW拍拍拍| 特级国产一区二区三区| 亚洲国产美女精品久久久久∴| 1区2区3区高清视频| 人妻人妻少妇在线系列| 人妻少妇被猛烈进入中文| 高清午夜福利电影在线| 亚洲欧美日韩人成在线播放| 亚洲另类激情专区小说婷婷久 | 麻豆国产精品一区二区三区| 妺妺窝人体色www聚色窝仙踪| 最近中文av字幕在线中文| 蜜桃视频中文在线观看| 国产一区二区av免费观看| 国语对白做受xxxxx在| 国产人成午夜免电影观看| 白色月光在线观看免费高清| 日韩人妖视频一区二区| 国产成人无码免费视频在线| 精品免费人伦一区二区三区蜜桃| 亚洲中文字幕在线精品2021| 亚洲av成人精品一区二区三区| 熟妇人妻无乱码中文字幕| 免费国产一级片内射老| 国产精品国产传播国产三级| 国产黄大片在线观看| 亚洲Va欧美va国产综合| 亚洲二区三区四区太九| 国产精品一区二区三区卡| 内谢少妇xxxxx8老少交 | 国产精品.xx视频.xxtv| 熟妇与小伙子露脸对白| 日韩一区二区三区久久精品| 肥臀熟女一区二区三区| 国产精品 精品国内自产拍| 亚洲av狠狠爱一区二区三区| 影视av久久久噜噜噜噜噜三级 |