亚洲免费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
        18禁黄久久久aaa片| 久久久久久久久久免免费精品| 好爽要高潮了在线观看| 亚洲精品女同一区二区三区| 一区二区三区视频| 国产又色又爽无遮挡免费动态图| 色丁香在线观看| 久久精品日本美女视频| 国产精品亚洲一级av第二区| 山外人精品影院| 国产做无码视频在线观看浪潮| 连续高潮喷水无码| 高清少妇一区二区三区| 乱码窝窝久久国产无人精品| 国产在视频线精品视频| 日韩秘 无码一区二区三区| 开心激情站开心激情网六月婷婷| 亚洲av色香蕉一区二区三区软件| 美女视频一区二区三区在线| 大又大又粗又硬又爽少妇毛片| 少妇私密会所按摩到高潮呻吟| 无码人妻品一区二区三区精99| 精品三级久久久久久久| 国产丝袜美腿中文字幕| 97久久婷婷五月综合色d啪蜜芽 | 一本一道AⅤ无码中文字幕| 国产亚洲精品一区二区在线观看| 在线视频国产91自拍| 人禽交 欧美 网站| 色翁荡息又大又硬又粗又视频图片 | 日本精品久久久久中文字幕1| 神马不卡影院在线播放| 国产suv精品一区二区四| 亚洲va中文字幕无码久久不卡| 在线无码国产精品亚洲а∨| 久久伊人精品只有这里有| 草逼动态图视频免费观看网站| 久久亚洲av无码西西人体| 久久国产精品不只是精品| 日韩精品免费在线视频| 一区二区三区国产高清视频|