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

        ?

        基于Java局域網(wǎng)內(nèi)實時通信系統(tǒng)設(shè)計

        2014-10-21 19:57:17李佳毛崠博
        計算機光盤軟件與應(yīng)用 2014年24期
        關(guān)鍵詞:服務(wù)器端局域網(wǎng)客戶端

        李佳 毛崠博

        摘 要:本系統(tǒng)主要利用Java語言,C/S架構(gòu),并結(jié)合了Socket網(wǎng)絡(luò)編程技術(shù)與Microsoft Office Access(數(shù)據(jù)庫軟件)技術(shù),選擇TCP傳輸協(xié)議在兩臺計算機之間實現(xiàn)了文本與文件的實時傳輸功能和離線留言功能,進(jìn)而實現(xiàn)局域網(wǎng)內(nèi)計算機間的實時通信。

        關(guān)鍵詞:實時通信;局域網(wǎng);網(wǎng)絡(luò)編程;服務(wù)器端;客戶端

        中圖分類號:TP393.18

        1 局域網(wǎng)內(nèi)實時通信的發(fā)展概況

        目前,國內(nèi)外對局域網(wǎng)內(nèi)通信的發(fā)展情況有一定差別。下面分別從國外和國內(nèi)兩大方面對局域網(wǎng)內(nèi)通信的發(fā)展情況進(jìn)行介紹。

        1.1 國外的發(fā)展概況

        由于國外的計算機技術(shù)發(fā)展相對來講比較成熟,他們對充分利用內(nèi)部網(wǎng)絡(luò)資源的認(rèn)知比較早,并且很早前就已經(jīng)開發(fā)了相關(guān)的產(chǎn)品,所以現(xiàn)在各種以局域網(wǎng)為單位的實時通信系統(tǒng)已經(jīng)進(jìn)入相對穩(wěn)定發(fā)展階段,在各個大小企業(yè)中也得到了良好的實際應(yīng)用效果。

        1.2 國內(nèi)的發(fā)展概況

        在國內(nèi),企業(yè)對局域網(wǎng)的實時通信系統(tǒng)認(rèn)知和使用情況并不是很好,在局域網(wǎng)內(nèi)實現(xiàn)文件傳輸和資源共享方面,各個企業(yè)單位還存在很大的缺陷。那么,基于局域網(wǎng)內(nèi)部網(wǎng)絡(luò)開發(fā)的產(chǎn)品也就比較少,而且無論是從理論上或?qū)嵺`上,我們的技術(shù)都還不夠完善,所以在企業(yè)中也就沒有得到廣泛的應(yīng)用。

        2 相關(guān)理論及基礎(chǔ)技術(shù)

        本系統(tǒng)采用了Java編程語言,并結(jié)合了對Socket網(wǎng)絡(luò)編程和Microsoft Office Access數(shù)據(jù)庫技術(shù)以及TCP傳輸協(xié)議的應(yīng)用。對各技術(shù)具體介紹如下。

        2.1 Java語言

        Java作為一種程序設(shè)計語言,它是面向?qū)ο蟮?。通過網(wǎng)絡(luò)協(xié)議,我們可以直接或者間接的與其它計算機進(jìn)行通信,這就是網(wǎng)絡(luò)編程的目的,要使兩臺計算機之間進(jìn)行通信需解決兩個主要問題:一個是如何準(zhǔn)確定位網(wǎng)絡(luò)上的主機地址;另外一個是定位到主機以后如何有效安全地進(jìn)行通信[1]。

        Java是一種提供了比較強大的網(wǎng)絡(luò)編程接口的網(wǎng)絡(luò)編程語言。針對不同層次的網(wǎng)絡(luò)通信,Java提供了4大類網(wǎng)絡(luò)功能,其中,TCP/IP是Internet使用的協(xié)議組,而Socket是該協(xié)議組的組合,Socket實現(xiàn)了兩臺計算機之間通過端口來實現(xiàn)通信,Socket類是在Java.net包中提供的,該包隱藏了Socket的具體實現(xiàn)細(xì)節(jié),使得程序員不需要自己編寫接口程序,就可以快速的實現(xiàn)網(wǎng)絡(luò)通信[2]。

        2.2 Socket編程實現(xiàn)原理

        進(jìn)程之間要進(jìn)行通信,那么首先就要建立各自的Socket,每個Socket都可以進(jìn)行讀操作和寫操作,而進(jìn)行讀和寫操作的時候,分別用到的就是Socket中的輸入流和輸出流。

        建立連接后,客戶程序就可以向Socket里寫入自己的請求,在一個連接請求被服務(wù)器監(jiān)聽到后,客戶端和服務(wù)器就成功建立了一個通信連接。而在成功建立通信連接的過程中,被本地端口號綁定的客戶端會與一個Socket連接,客戶端可以通過這個Socket的寫操作來通知服務(wù)器,然后通過Socket的讀操作來得到數(shù)據(jù)。服務(wù)器也同樣地得到一個本地端口號,而且它還需要一個新的端口號來監(jiān)聽原始端口上的其它連接請求。而且服務(wù)器也可以給它的本地端口連接一個Socket并通過讀寫操作處理來自客戶端的請求[3]。

        2.2.1 建立Socket應(yīng)注意的問題

        當(dāng)建立一個通信用的Socket的時候,必須指出通信要使用什么樣的的風(fēng)格,使用什么協(xié)議等,也就是需要注意下面的問題。

        (1)在通信過程中是否必須始終面向一個連接,我們把這種情況形象地比作電話,我們打電話的時候首先要和對方的電話建立連接,在整個通話的過程中,我們會一直保持這個連接,直到雙方中的一方掛斷電話。另一種情況就是傳輸數(shù)據(jù)的過程中不需要建立連接,就像發(fā)送電報一樣,直接發(fā)送數(shù)據(jù)就可以了;

        (2)在數(shù)據(jù)傳輸?shù)倪^程中是否允許數(shù)據(jù)丟失,有的通信風(fēng)格能夠保證接受到的數(shù)據(jù)順序和發(fā)送時的順序是一致的,而有的不是這樣:既不能保證按順序到達(dá),也不能保證數(shù)據(jù)是否丟失[4]。

        2.2.2 從連接建立到結(jié)束的過程

        從連接的建立到連接的結(jié)束,每個Socket應(yīng)用都大致包含以下幾個基本步驟。

        服務(wù)器端的Socket綁定于特定的端口,服務(wù)器偵聽Socket等待連接請求??蛻舳讼蚍?wù)器端和特定端口提交連接請求。服務(wù)器接受連接,產(chǎn)生一新的Socket,綁定到另一端口,由此Socket來處理和客戶端的交互,服務(wù)器繼續(xù)偵聽原來的Socket來接受其他客戶端的連接請求。服務(wù)器端每次當(dāng)建立一個新的Socket連接的時候,主線程就啟動一個新的線程,負(fù)責(zé)服務(wù)器與客戶端的通信;而主線程繼續(xù)等待下一個客戶端的連接。當(dāng)客戶端斷開連接后,子線程釋放其占用的所有Socket資源[5]。

        連接成功后客戶端也會產(chǎn)生一個Socket,并通過它來與服務(wù)器端進(jìn)行通信,要注意的是客戶端Socket并不與特定端口綁定。最后,服務(wù)器端和客戶端就通過讀取和寫入各自的Socket來進(jìn)行通信。

        2.3 Microsoft Office Access數(shù)據(jù)庫

        本設(shè)計通過對Access數(shù)據(jù)庫的應(yīng)用,更好的管理用戶信息、用戶列表。用戶可以修改自己的資料和密碼,查看其他用戶資料,隨意添加或刪除用戶。服務(wù)器端可以顯示在線用戶以及所有用戶資料。這所有的通信用戶信息都記錄在數(shù)據(jù)庫里,并以列表形式顯示到界面上,使系統(tǒng)好友界面更直觀、更友善。

        2.4 TCP與UDP協(xié)議

        TCP與UDP是工作在傳輸層的兩個核心協(xié)議,它們可以為應(yīng)用層提供會話和數(shù)據(jù)報通信服務(wù)。雖然,在本設(shè)計中,編寫Java應(yīng)用程序時,主要是在第4層也就是在應(yīng)用層上完成的。但是,仍然需要掌握傳輸層的TCP和UDP協(xié)議,因為這將決定我們在編程時使用哪種Java類。

        3 系統(tǒng)總體設(shè)計分析

        3.1 系統(tǒng)設(shè)計目標(biāo)

        根據(jù)調(diào)研,本設(shè)計需要滿足以下幾個系統(tǒng)設(shè)計目標(biāo):

        (1)實用性的原則。按照簡單實用的原則真正為局域網(wǎng)的實際工作服務(wù),合理設(shè)計本系統(tǒng)。

        (2)程序可擴展性的原則。采用開放的標(biāo)準(zhǔn)和接口,便于將來想要添加更多的功能。

        (3)傳輸可靠性的原則。必須為用戶提供可靠的服務(wù),尤其是要保證傳輸?shù)姆€(wěn)定性。

        (4)友好性的原則。希望本設(shè)計對計算機知識了解很少的用戶也可以使用,所以系統(tǒng)操作上要求簡單方便,便于用戶使用。

        3.2 系統(tǒng)總體結(jié)構(gòu)

        本系統(tǒng)采用目前比較流行的網(wǎng)絡(luò)通信模型C/S結(jié)構(gòu)。在C/S結(jié)構(gòu)中,服務(wù)器端與客戶端是上級和下級的關(guān)系。服務(wù)器端始終處于被動地等待客戶端提出連接請求,并給予響應(yīng)??蛻舳嗽谛枰?wù)器的時候就向服務(wù)器提出連接請求。

        3.3 系統(tǒng)功能分析

        從企業(yè)內(nèi)部的實用性角度考慮,本系統(tǒng)應(yīng)具備3大基本功能,即局域網(wǎng)內(nèi)點對點文本傳輸功能,離線留言功能和文件傳輸功能。在設(shè)計時,應(yīng)根據(jù)系統(tǒng)的設(shè)計目標(biāo),使安排布局上具有簡潔、流暢等特點,以及在編程時考慮傳輸?shù)姆€(wěn)定與快捷,真正做到“簡潔、高效、流暢、安全”的使用環(huán)境。根據(jù)以上的功能特點分析,本系統(tǒng)可由兩大模塊來實現(xiàn):服務(wù)器端模塊和客戶端模塊。其中,客戶端模塊實現(xiàn)兩個用戶之間的文本傳輸、離線留言和文件傳輸功能。

        4 系統(tǒng)詳細(xì)設(shè)計

        本系統(tǒng)對于主要模塊設(shè)計部分可以分為三大部分:服務(wù)器端模塊、客戶端模塊和系統(tǒng)功能模塊。其中服務(wù)器端模塊和客戶端模塊的設(shè)計主要通過套接字來完成服務(wù)器端與客戶端間的連通。功能模塊設(shè)計主要分為:文本實時傳輸和文件實時傳輸兩方面。下面分別對這些模塊的設(shè)計進(jìn)行詳細(xì)的介紹。

        4.1 服務(wù)器端與客戶端之間的整體工作模式

        本系統(tǒng)通過Socket接口來實現(xiàn)客戶端、服務(wù)器端之間的通信,Socket是兩個程序進(jìn)行雙向數(shù)據(jù)傳輸?shù)木W(wǎng)絡(luò)通信端點,主要由一個端口號和一個IP地址來標(biāo)識。

        服務(wù)器端首先要創(chuàng)建自己的Socket,并要把這個Socket與某一個端口綁定,然后通過accept()方法監(jiān)聽有無連接請求。客戶端同樣首先也要創(chuàng)建自己的Socket,這個Socket會指明服務(wù)器程序所在的IP地址,這時就發(fā)出了自己的連接請求。

        4.2 服務(wù)器端詳細(xì)業(yè)務(wù)流程

        本系統(tǒng)中,首先服務(wù)器端處于開啟狀態(tài),時刻監(jiān)聽有無來自客戶端的連接請求。若發(fā)現(xiàn)客戶端發(fā)出連接請求,立即給予響應(yīng)。在服務(wù)器端與客戶端連接后,服務(wù)器端可以查詢在線用戶,查詢所有用戶基本資料、用戶名、密碼等信息。在結(jié)束連接時,關(guān)閉服務(wù)器。

        4.3 客戶端詳細(xì)業(yè)務(wù)流程

        本系統(tǒng)中,欲使客戶端與服務(wù)器建立連接,首先客戶端需向服務(wù)器發(fā)送一個連接請求,服務(wù)器響應(yīng)其請求后,雙方才能連通。然后,客戶端通過用戶名和密碼進(jìn)行登錄。在登錄之前需要進(jìn)行IP測試,當(dāng)IP測試成功,既與服務(wù)器連接成功,此時客戶端用戶就可以與其他用戶進(jìn)行實時通信,實現(xiàn)本系統(tǒng)功能。當(dāng)用戶不進(jìn)行通信時即可結(jié)束線程。

        5 結(jié)束語

        本設(shè)計最大優(yōu)點之一就是界面友好、簡單、用戶列表清晰易操作。即使從沒有使用過本系統(tǒng)的用戶,也可很快上手。所有功能界面都集成到一起,大大減少了界面的數(shù)量以及界面交換的不便。

        它的另外一個優(yōu)點就是有很好的可擴展性,本設(shè)計采用的是設(shè)計模式,很好的運用了Java中的繼承和抽象類等特性。這種設(shè)計模式就使程序有了很好的擴展性。當(dāng)想要加一些功能的時候,只要在抽象類中對想要加入功能的方法進(jìn)行聲明,然后再用具體的實體類去實現(xiàn)就可以了,而不會對其他的程序造成影響,有很好的獨立性。

        參考文獻(xiàn):

        [1]杜瑞慶,閆敬,李銀兵.Java中的數(shù)據(jù)報通訊方式[J].福建電腦,2007(04):189.

        [2]王靜,曲鳳娟.基于Socket的多用戶并發(fā)通信的設(shè)計[J].福建電腦,2007(03):164.

        [3]蘇宏良.儲能電池組遠(yuǎn)程監(jiān)控系統(tǒng)研究與設(shè)計[D].武漢:武漢理工大學(xué),2010.

        [4]丁穎麗.三層計算構(gòu)架中Logistic回歸分析的設(shè)計與實現(xiàn)[D].上海:東華大學(xué),2008.

        [5]陳更力,張青.基于Java Socket 網(wǎng)絡(luò)編程的一種新實現(xiàn)[J].電腦開發(fā)與應(yīng)用,2006(06):13.

        作者簡介:李佳(1988.01-),山東黃縣人,助理工程師,工學(xué)學(xué)士,研究方向:通信工程。

        作者單位:國家新聞出版廣電總局二九二臺,山東青島 266000

        猜你喜歡
        服務(wù)器端局域網(wǎng)客戶端
        基于VPN的機房局域網(wǎng)遠(yuǎn)程控制系統(tǒng)
        電子制作(2019年16期)2019-09-27 09:35:04
        縣級臺在突發(fā)事件報道中如何應(yīng)用手機客戶端
        傳媒評論(2018年4期)2018-06-27 08:20:24
        孵化垂直頻道:新聞客戶端新策略
        傳媒評論(2018年4期)2018-06-27 08:20:16
        基于Vanconnect的智能家居瘦客戶端的設(shè)計與實現(xiàn)
        電子測試(2018年10期)2018-06-26 05:53:34
        淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
        成功(2018年10期)2018-03-26 02:56:14
        基于802.1Q協(xié)議的虛擬局域網(wǎng)技術(shù)研究與實現(xiàn)
        電子制作(2017年17期)2017-12-18 06:40:48
        局域網(wǎng)性能的優(yōu)化
        電子制作(2017年8期)2017-06-05 09:36:15
        在Windows中安裝OpenVPN
        客戶端空間數(shù)據(jù)緩存策略
        網(wǎng)頁防篡改中分布式文件同步復(fù)制系統(tǒng)
        国产成人综合美国十次| 人妻少妇看A偷人无码电影| 亚洲一区二区高清在线| 国产午夜福利在线观看中文字幕| 久久久精品人妻一区二区三区妖精 | 女女同恋一区二区在线观看| 人妻少妇出轨中文字幕| 麻豆高清免费国产一区| 欧美日韩国产在线成人网| 日本人妻系列一区二区| 久久国产乱子精品免费女| 大屁股流白浆一区二区| 午夜av天堂精品一区| 偷拍激情视频一区二区三区| 国产美女露脸口爆吞精| 在线亚洲AV不卡一区二区| 少妇高潮呻吟求饶视频网站| 国产精品美女主播一区二区| 免费a级毛片在线播放| a级毛片无码久久精品免费| 亚洲另类激情综合偷自拍图| 国产精品麻豆成人av| 东风日产车是不是国产的 | 久久国产成人午夜av影院| 丰满少妇人妻无码超清| 激情五月开心五月啪啪| 很黄很色很污18禁免费| 国产av人人夜夜澡人人爽麻豆| 2021国产最新无码视频| 精品午夜中文字幕熟女| 美女视频在线观看亚洲色图 | 中文乱码字字幕在线国语| 中文无码精品a∨在线观看不卡| 欧洲熟妇乱xxxxx大屁股7| 一区二区免费电影| 日韩中文字幕一区二十| 日韩a级精品一区二区| 久久精品免费一区二区三区 | 高跟丝袜一区二区三区| 蜜桃夜夜爽天天爽三区麻豆av| 少妇久久久久久人妻无码|