999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種小型實用即時網絡聊天通訊系統的設計

2011-04-10 01:43:10中國電信荊州分公司湖北荊州434020
長江大學學報(自科版) 2011年34期
關鍵詞:數據庫信息

(中國電信荊州分公司,湖北 荊州434020)

隨著互聯網技術和計算機技術在不斷進步,通過互聯網進行通訊交流的人越來越多,聊天通訊系統也在不斷地優化,開發設計技術也在不斷地提高。下面,筆者基于Java語言對一個小型實用即時網絡聊天通訊系統的實現展開分析和設計。

1 系統的總體設計與實現

整個系統的總體實現如圖1所示。客戶成功登錄后將創建一個線程來接收服務器端的信息并進行處理,同樣,服務器端接收到一個連接后就為這個連接創建一個線程來對客戶的操作進行處理。在服務器端打開之后就創建了一個數據源,為客戶服務的線程在需要訪問數據庫的時候就從服務器端的數據源里取一個數據庫的連接來進行數據庫操作,減少了頻繁的數據庫連接和釋放的次數,提高了效率。

圖1 整個系統的總體實現

客戶端與服務器端之間的消息都是一個個實現了Message接口的對象,Message接口有一個方法getType(),該方法返回該對象的類型,在發送和接收的時候都是直接對Message類型的對象進行操作[1]。這樣的好處就是在接收發送信息時可以統一處理。Message接口的定義如下所示:

具體的消息類型都已經在PackageType里面進行定義,而具體的消息類在構造時就要為type斌一個相應的值.目前系統用到的消息類和其相應的在PackageType里定義的type值如表1所示。

具體的消息類因為要通過網絡進行發送因此必須實現Serializable接口,同時要實現Message接口。下面就聊天內容消息類對具體消息類的實現進行分析。

表1 消息包和其對應的type值

在每個具體消息類里面都有一個成員type,用來標識消息的類型,實現getType方法返回type,同時type在構造函數中進行賦值。

2 登錄過程的設計與實現

登錄的信息在登錄窗口進行輸入,登錄過程則調用客戶端主窗口的方法來實現,如果成功登錄登錄窗口就退出,顯示客戶端主窗口,如果登錄不成功就彈出提示框,用戶可在登錄窗口修改輸入的信息再進行登錄。登錄過程的順序為:①客戶端連接服務器端。用公鑰加密生成的密鑰,把加密的密鑰發送到服務器端;服務器端用私鑰解密接收到的密鑰,設置加密密碼;②客戶端對用戶的密碼進行加密,發送驗證信息;服務器端驗證用戶信息,返回驗證結果,如果失敗就關閉socket,結束過程;③客戶端驗證失敗就提示失敗,結束過程;驗證成功就顯示主窗口,發送自己的狀態信息;服務器端讀取客戶的狀態,發送用戶的信息;④客戶端接收自己的信息,存儲下來,服務器端發送客戶的好友列表;⑤客戶端讀取好友列表。

3 注冊過程的設計與實現

注冊的信息在注冊窗口輸入,注冊過程就與服務器建立一個連接,把注冊時填的信息通過Regist Message發送到服務器,服務器把注冊信息添加到數據庫,然后通過RegistResultMessage返回一個注冊到的號碼給客戶端,如果過程出現錯誤就返回的注冊到的號碼為0。客戶端收到注冊結果后把注冊到的結果顯示給用戶,或者提示注冊不成功。由于在數據庫添加記錄后要返回注冊到的號碼,所以在數據庫設計的時候hmnum沒有用到自動遞增,而是在注冊的時候先得到hmnum的最大值,然后把最大值加1作為注冊到的帳號,寫到數據庫,同時把這個號碼返回給客戶端。

4 聊天的設計與實現

聊天部分是系統的核心,涉及到嚴格的順序控制和許多的細節。首先是在客戶端的實現,在好友列表的列表項里保存了所有在系統的使用過程中要用到的信息,有好友的帳號、好友的昵稱、好友的狀態、好友的頭像、好友的頭像號和與該好友的聊天窗口。收到該好友的聊天消息時,如果與該好友的聊天窗口還沒有初始化,就新建一個與該好友的聊天窗口存儲在好友的列表里,然后把收到消息加入到聊天窗口里;如果與該好友的聊天窗口已經建立就直接把收到的消息加入到聊天窗口。如果聊天窗口還沒有打開,就把好友的頭像換成跳動的頭像來提示用戶已收到該好友的聊天信息。如果主窗口已經縮進到屏幕的上方或者最小化,則系統托盤會有消息框提示收到好友的消息。要打開與該好在的聊天窗口,只要在主窗口雙擊好友的列表項就行了。如果在好友頭像跳動即有收到好友的時候打開窗口就會顯示已收到的消息,打開聊天窗口后就可以與該好友進行聊天。

5 發送文件的設計與實現

發送文件的過來要由發送端、服務器和接收端共同協作來完成,要發送的文件都通過服務器來進行中轉。文件發送的順序控制為:①發送端發送文件信息,要求發送文件(發送文件的線程啟動);服務器端向接收端發送文件信息,要求發送文件;接收端選擇接收或拒絕,發送結束。②服務器端如果選擇接收,為傳輸文件創建一個線程,創建serversocket等待發送端和接收端連接,把serversocket端口發送給接收端;接收端收到端口,連接到服務器的serversocket(接收文件的線程啟動)。③服務器端與接收端連接上,把serversocket端口發送給發送端。④發送端收到端口,連接到服務器的serversocket;服務器端與發送端連接上后,向發送端發送一個信息,表示已經可以開始發送文件的數據。⑤發送端收到信息后發送數據,開始循環發送文件數據,同時更新進度條和傳輸速度;服務器端接收發送端的數據,再發送到接收端;接收端接收文件數據,同時更新進度條和傳輸速度。⑥發送端傳輸完成,線程結束;服務器端傳輸完成,線程結束;接收端傳輸完成,線程結束。

[1]Bruce Eckel.Thinking in Java [M].Third Edition.北京:機械工業出版社,2004:315-370.

猜你喜歡
數據庫信息
數據庫
財經(2017年15期)2017-07-03 22:40:49
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
數據庫
財經(2010年20期)2010-10-19 01:48:32
信息
建筑創作(2001年3期)2001-08-22 18:48:14
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 亚洲精品男人天堂| 国产麻豆精品在线观看| 日本午夜影院| 日本人真淫视频一区二区三区| 精品国产网| 亚洲高清无在码在线无弹窗| 一本色道久久88| 亚洲精品视频免费看| www精品久久| 国产精品妖精视频| 91九色最新地址| 91视频国产高清| 国产精品极品美女自在线看免费一区二区| 日韩午夜片| 亚洲日韩久久综合中文字幕| 草草影院国产第一页| 欧美成人手机在线视频| 欧美亚洲国产精品久久蜜芽| 亚洲人成影院在线观看| 国产精品亚洲一区二区在线观看| 欧美自慰一级看片免费| 日本91视频| 中文无码精品A∨在线观看不卡 | 一区二区日韩国产精久久| 成人字幕网视频在线观看| 国产99精品久久| 999国产精品| 99视频精品在线观看| 日本AⅤ精品一区二区三区日| 国产九九精品视频| 亚洲第一在线播放| 麻豆精品在线视频| 视频一区亚洲| 久久久久国产一区二区| 亚洲精品在线影院| 中文字幕久久波多野结衣 | 手机永久AV在线播放| 亚洲码一区二区三区| 国产高清无码第一十页在线观看| 99热线精品大全在线观看| 综合网久久| 亚洲AⅤ综合在线欧美一区| 97在线碰| 玖玖精品视频在线观看| 国产成人三级| 国内老司机精品视频在线播出| 亚洲成a人片在线观看88| 亚洲激情99| 69精品在线观看| 国产乱人激情H在线观看| 亚洲精品天堂自在久久77| 久久久久青草线综合超碰| 永久毛片在线播| 欧美黄网站免费观看| 国产精品第一区| 国产欧美在线| 精品久久久无码专区中文字幕| 久久久久88色偷偷| 亚洲精品国产成人7777| 国产免费a级片| 国产高清在线观看| 在线永久免费观看的毛片| 久久久国产精品无码专区| 亚洲AV人人澡人人双人| 日韩精品无码不卡无码| 欧美 亚洲 日韩 国产| 日韩欧美国产另类| 69视频国产| 在线另类稀缺国产呦| 国产成人精品午夜视频'| 久久9966精品国产免费| yjizz国产在线视频网| 欧洲一区二区三区无码| 福利在线一区| 亚洲无码精品在线播放 | 日本精品中文字幕在线不卡| 国产福利小视频高清在线观看| 色精品视频| 日本91在线| 久久福利片| 毛片网站观看| 国产在线八区|