下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、java 語言與其開發(fā)技術發(fā)展趨勢研究摘要:目前即時通訊工具在互聯(lián)網(wǎng)上使用廣泛,便利、易用受歡迎,結合 java 語言在跨平臺、安全性、多線程、網(wǎng)絡 socket 編程等方面的優(yōu)點以及我們公安系統(tǒng)的安全性可靠性和可維護性等多方面考慮,該文將就一系列的問題設計了一個基于 java 虛擬機,可跨平臺特性的即時通訊工具。文中對該即時通訊系統(tǒng)的體系結構、構成模塊進行了分析介紹,給出了該系統(tǒng)的需求背景、概要設計、詳細設計以及該系統(tǒng)的大概實現(xiàn)過程。實驗證明,該即時通訊系統(tǒng)簡潔實用并能夠很好的支持在多個操作系統(tǒng)平臺運行,真正實現(xiàn) java 的跨平臺的特性,體現(xiàn) java 的魅力所在。關鍵字:java soc
2、ket 多線程 即時通訊在當今網(wǎng)絡化、信息化以及辦事效率的成倍提高的社會,即時通訊已經(jīng)是一個無法或缺的,讓使用者在網(wǎng)絡上進行即時交流信息的實時通訊服務的網(wǎng)絡工具。即時通訊服務的主要功能在與提供了文字、圖片以及視頻的即時通訊,只要通訊雙方同時在線,就能像多媒體電話一樣,傳送文字、檔案、聲音、影像給對方而不用考慮距離。目前在互聯(lián)網(wǎng)上受歡迎的即時通訊軟件包括 qq、msn messenger、gtalk、百度 hi、jabber、icq 等。隨著互聯(lián)網(wǎng)的發(fā)展與普及,網(wǎng)上即時通訊聯(lián)絡已經(jīng)成為廣大網(wǎng)民不可或缺的服務,同時隨著我們公安系統(tǒng)的不斷高速發(fā)展以及行動的需求,我們公安系統(tǒng)也應該也必須擁有一套屬于自
3、己的內部的即時聊天工具,以提高公安系統(tǒng)辦公的高效性以及行動的保密性與及時性。作為一款即時通訊工具的雛形,該系統(tǒng)已經(jīng)能夠為廣大公安干警提供基本的即時通信交流以及語音通訊服務,它是利用當今最為流行的 java 語言來編寫的,該系統(tǒng)本身固有的優(yōu)點,比如跨平臺運行,強大的網(wǎng)絡功能以及良好的數(shù)據(jù)庫接口支持在該系統(tǒng)中也將得到體現(xiàn),同時開發(fā)過程中的很多步驟和開發(fā)出來的代碼都涉及到 java 語言的關鍵的或者具有特色的技術,比如 java 的網(wǎng)絡編程,swing 界面程序設計以及 udp 打洞等等技術。一、 系統(tǒng)的設計本系統(tǒng)采用的是基于 c/s 模式的即時通訊服務。用戶可以在公安網(wǎng)上下載到通信客戶端軟件,通過
4、客戶端軟件使用專用的公安網(wǎng)絡連接登陸到服務器,然后服務器根據(jù)客戶端的服務指令將客戶端之間的文本聊天信息進行轉發(fā),即一方先將消息通過 tcp 連接發(fā)送至服務器,服務器再通過 tcp 連接將消息轉發(fā)到另一方,客戶端與服務器的通信內容將使用xml 進行封裝,以保證進行網(wǎng)絡通信時的安全性問題。由于通過 napt 上網(wǎng)的特點決定了只能由 napt 內的計算機主動向 napt 外部的主機發(fā)起連接,這就意味著內網(wǎng)的系統(tǒng)用戶無法主動發(fā)起語音通訊請求。如果兩位用戶都處在不同的內網(wǎng),語音通訊便無法進行,為了解決這個問題,在數(shù)據(jù)傳輸上采用 udp 打洞技術來對 napt 進行穿透。由服務器協(xié)助兩個客戶端建立 udp
5、 直連,語音數(shù)據(jù)將采用 udp 協(xié)議使用點到點方式傳輸,而用戶對語音聊天的控制信息,如請求通訊、接受/拒絕接聽、掛斷通訊等同樣由服務器中轉來實現(xiàn)。根據(jù)系統(tǒng)的要求,客戶端應具備以下幾個功能:即時通信、語音和視頻通信、好友管理、賬戶管理等。在客戶端類設計上,設計好客戶端的主類,其中定義了實現(xiàn)客戶端主要功能的一些方法。它包括幾個重要的內部類:receivethread、chatpane、userinfoframe、userinfobean 等等。內部類 receivethread 實現(xiàn)服務器端所有消息的接收和解析,應用 java 多線程技術, 對來自服務器的消息單獨開一個線程來監(jiān)聽,發(fā)送消息通過類
6、sendthread 建立到服務器的單獨線程。chatpane 類為用戶聊天面板,用戶與每一個好友聊天時都會生成一個 chatpane 對象,所有的 chatpane 對象由系統(tǒng)中唯一的一個 chatframe 窗口對象管理。而用戶個人信息管理用一個窗口類 userin-foframe 類來實現(xiàn),包括個人信息的修改,好友的增刪等等, 每個 userinfoframe 對象關聯(lián)一個 userinfobean 對象。userinfobean 類為系統(tǒng)中非常重要的一個類,它保存用戶的所有個人資料以及此用戶發(fā)送的聊天信息等內容。每段聊天信息由一個 mes-sagebean 對象保存。音頻捕獲和音頻回放
7、功能通過 com.javahi.client.audioprocess 包中有兩個類:audiocapture 和 au-dioplayback 來分別實現(xiàn)。這樣就能夠完成整個客戶端的用戶的需求,同樣滿足了公安系統(tǒng)中的簡單性、實用性、安全性等特性的需求從而可以大大提高我們公安系統(tǒng)的辦事效率,實現(xiàn)為人們服務的宗旨。服務器端要求為客戶端提供聊天服務管理,建立語音通訊 udp 直連中介服務和注冊服務,以及簡單的數(shù)據(jù)庫管理和參數(shù)設置功能。這些功能的實現(xiàn)與完善可以更好的為公安系統(tǒng)的即時通信服務而服務。在服務器端類設計上,定義了 javahiserver 類為服務器端主類,此類會從硬盤上讀取已保存的服務器
8、相關參數(shù),并初始化監(jiān)控臺界面 serverframe 對象,serverframe 類包括多個管理面板類,在聊天服務管理面板類 chatserverpane 中通過兩個重要的內部類來實現(xiàn)數(shù)據(jù)通信:servicethread 和 audioser-vicethread.serverthread 為監(jiān)聽客戶端登陸連接的線程類,每當一個客戶端登陸服務器的時候便生成一個 serverthread 線程對象來管理與客戶端的 tcp 連接,接收來自客戶端的消息,解析消息并調用相應的方法進行處理,并將處理結果返回給客戶端。而 audioservicethread 是服務器為客戶端提供語音通訊 udp 直連服
9、務的線程,它接收來自客戶端發(fā)送的 udp 包,并提取出客端的外網(wǎng) ip 和 port 作相應記錄。這樣便可以很好的記錄和監(jiān)控公安網(wǎng)絡的聊天情況,從而更好的體現(xiàn)安全性的服務。另外在系統(tǒng)的聊天記錄中還包含敏感字監(jiān)控程序,對所有人的聊天記錄進行監(jiān)控,當發(fā)現(xiàn)敏感詞匯出現(xiàn),并且所屬的用戶或用戶組沒有開放關鍵字時,系統(tǒng)服務會提示用戶不可以使用, 當用戶不聽從警告繼續(xù)使用時,系統(tǒng)將會自動結束該用戶的聊天進程,并將所有的聊天記錄保存,并作相應的安全處理,同時將警告發(fā)送至管理員以及發(fā)生警告的用戶聊天記錄。當管理員授權后便可繼續(xù)進行聊天,并且不再進行敏感字的警告。該即時通訊系統(tǒng)以 mysql 作為后臺數(shù)據(jù)庫,建立
10、名為 javahi 的數(shù)據(jù)庫,共兩個表, user 表和 friend 表,user 表為用戶的基本信息表,包括用戶名,昵稱,密碼等,friend 表為用戶的好友表。包括自己的用戶名和好友用戶名字段。同時將所有的用戶的聊天記錄以文本的形式存入硬盤,一定級別的聊天記錄應當進行相應的加密處理。數(shù)據(jù)庫的編碼采用的是 utf-8 編碼。二、系統(tǒng)實現(xiàn)由于客戶端實現(xiàn)的各部分功能主要分為事件的響應,消息的組織,發(fā)送,解析等過程, 本文只選取部分功能模塊作詳細描述,其它模塊的實現(xiàn)與此類似。文本消息的傳送,用戶填寫文本信息,并點擊按鈕發(fā)送,客戶端的發(fā)送事件被啟動, 服務器接收消息后首先進行關鍵字的檢測,當檢測無
11、關鍵字時再進行目標用戶是否在線檢查,如果目標用戶不在線,則將發(fā)送失敗信息返回給發(fā)送者,如果在線則將信息轉發(fā)給目標用戶,目標用戶接收消息后查看發(fā)送方是否在黑名單中,如果不在黑名單中則提示用戶有新消息到來,若在黑名單當中則直接屏蔽該用戶的信息。語音通信的實現(xiàn),語音通訊的兩個客戶端之間直接利用 udp 直連以實現(xiàn)點對點通信的過程如下:語音請求方向目標方發(fā)送語音請求后,經(jīng)過以下步驟:1) 發(fā)送一個 udp 包到服務器,里面包含源用戶名和目標用戶名;2) 利用與服務器的 tcp 連接發(fā)送語音請求到服務器,內容包括目標用戶名,再由服務器轉發(fā)給目標用戶;3) 啟動一個計時器每隔三秒循環(huán)一次,若沒有收到結果則
12、重復上面兩個步驟直到用戶取消請求或收到語音請求結果。服務器收到 udp 包后提取出包的源 ip 和 port 并作相應的記錄,收到語音請求后檢查目標用戶是否在線,如果不在線則返回給請求的用戶失敗消息, 如果在線則檢查發(fā)送用戶的記錄中有無與目標用戶相關的 ip 和 port,如果無則不做任何事情,如果有則將語音請求加上先前記錄的與目標用戶相關的源用戶的外網(wǎng) ip 和 port 一 起轉發(fā)給目標用戶客戶端,目標用戶作出“拒絕”或者“接受”操作,選擇拒絕請求則返 回給發(fā)送用戶相關信息,如果接受請求則同樣做與開始發(fā)送用戶相同的三個步驟,并發(fā)送 一個不帶任何內容的 udp 包到開始記錄過的源用戶的 ip
13、 和 port,直到兩用戶建立 udp 直連時為止。三、總結本系統(tǒng)設計實現(xiàn)了即時通訊最基本和最核心的功能,如文本信息交流和語音通訊,運行穩(wěn)定,能夠確保系統(tǒng)的安全性與穩(wěn)定性為公安內部人員提供一個切實可行的交流平臺,同時也保證了系統(tǒng)內部機密等級的保障,避免機密文件內容泄露。本系統(tǒng)使用的是 java 語言編寫,它的跨平臺性可以使該系統(tǒng)應用在 window 和 linux 操作系統(tǒng)中。后期將在此內核基礎上進行功能拓展,離線消息的實現(xiàn),添加豐富的用戶在線狀態(tài),文件傳輸功能等等,使其成為一個真正完善的,強大的能夠為我們公安系統(tǒng)內部人與服務好的即時通訊系統(tǒng)。三、參考文獻:【1】張白一,崔尚森.面向對象程序設
14、計m.西安:西安電子科技大學出版社,2003.【2】陳剛.eclipse 從入門到精通m.北京:清華大學出版社,2007.【3】吳亞峰,紀超.java se 6.0 編程指南m.北京:人民郵電出版社,2007.【4】eckel b.thinking in javam.america:pearson education,2003【5】darwin i f.java cook bookm.america:oreilly,2004.“”“”at the end, xiao bian gives you a passage. minand once said, people who learn to
15、learn are very happy people. in every wonderful life, learning is an eternal theme. as a professional clerical and teaching position, i understand the importance of continuous learning, life is diligent, nothing can be gained, only continuous learning can achieve better self. only by constantly learning and mastering the latest relevant knowledge, can employees from all walks of
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 初一北京上冊數(shù)學試卷
- 基于傳遞矩陣法的層狀土中管樁縱向振動響應研究
- 混合配筋鋼纖維再生混凝土梁受彎性能研究
- 小班幼兒在積木游戲中的學習品質調查研究
- 長江經(jīng)濟帶新型城鎮(zhèn)化與交通運輸耦合協(xié)調發(fā)展研究
- 二零二五年度鏟車司機夜間作業(yè)安全保障合同
- 二零二五年度醫(yī)療健康產業(yè)股權變更合同終止書
- 二零二五年度隱名股東投資股權代持合同補充協(xié)議
- 2025年度股權委托代持與公司治理優(yōu)化服務協(xié)議
- 二零二五年度舞臺劇演員演出合作協(xié)議
- 四川省成都市武侯區(qū)2023-2024學年九年級上學期期末考試化學試題
- 教育部《中小學校園食品安全和膳食經(jīng)費管理工作指引》知識培訓
- 初一到初三英語單詞表2182個帶音標打印版
- 2024年秋季人教版七年級上冊生物全冊教學課件(2024年秋季新版教材)
- 環(huán)境衛(wèi)生學及消毒滅菌效果監(jiān)測
- 2024年共青團入團積極分子考試題庫(含答案)
- 碎屑巖油藏注水水質指標及分析方法
- 【S洲際酒店婚禮策劃方案設計6800字(論文)】
- 鐵路項目征地拆遷工作體會課件
- 醫(yī)院死亡報告年終分析報告
- 中國教育史(第四版)全套教學課件
評論
0/150
提交評論