聊天程序項目規劃(張晨 宋浪峯 賀小寬組)

小組成員:張晨 宋浪峯 賀小寬數據庫

項目名稱:聊天系統服務器

小組分工:核心功能:張晨,宋浪峯 界面:賀小寬 調試:張晨,宋浪峯併發

完成設想:eclipse

運行環境:eclipse函數

使用語言:Java語言。線程

使用數據庫:SQL server 數據庫。設計

功能需求調試

(1)客戶端:提供登陸、主窗體及聊天等界面及對應的業務,向服務器發送相應的服務請求,並接受相應的處理結果。客戶端只負責連接遠程服務器,併發出相應的服務請求,不進行核心業務的處理。具體的處理交給服務器,而客戶端只接收服務器處理的結果並顯示給用戶。
orm

(2)服務器:監控登陸信息及在線用戶信息,接收客戶端的服務請求,並作相應的處理,而後將處理結果發送給客戶端。服務器負責處理核心的業務,並負責鏈接數據庫,保存和讀取數據。
server

(3)客戶端TCP通訊設計

設計ClientToServer類,該類實現了Runnable接口,是一個線程。

主要方法:

[1] boolean sendLoginInfoToServer(User u) :登陸請求。

[2] void getProgerties():獲取配置文件中的服務器IP地址信息。

[3] void logout(): 下線,通知服務器該用戶下線。

[4]inttoRegister(UserInfoBean user):新用戶註冊,返回QQ號。

[5] void noticeUpdate():通知刷新好友信息。

服務器TCP通訊設計

1)設計ServerThread線程類:處理用戶鏈接服務器請求,併爲其啓動單獨的服務(Server)線程。

主要方法:

[1] void run(): 重寫線程類Thread的方法,不斷的等待客戶端的鏈接請求。

[2] void pauseThread():暫停服務。

[3] void reStartThread():恢復服務。

2)設計Server線程類:處理每一個上線用戶個各類服務請求。

主要方法:

[1] void run():不斷的等待用戶的請求信息,並判斷請求類型。

[2] void login():處理用戶登陸。

[3] void registerNewUser():處理註冊新用戶

[4] void queryUser():處理查詢用戶。

[5] void addFriend():添加好友。

[6] void deleteFriend():刪除好友。

[7] void updateOwnInfo():更新本身的信息。

[8] void logout():下線。

[9] void queryFriend():查詢好友信息。

2.1.3.2基於UDP的通訊

在進行用戶聊天時,採用基於UDP的通訊協議。

客戶端UDP通訊設計

設計ClientToServerThread線程類:負責UDP通訊。

主要方法:

[1]void run():循環等待監聽發來的數據。

[2]void getPropertieInfo():獲取通訊的服務器的IP地址及本機通訊端口。

[3]void sendData(byte buffer[]):發送數據。

[4]void Object ByteToObject(byte[] bytes):將Byte數據轉爲Object類型。

[5]void ObjectToByte(Object obj):將Object型數據轉爲Byte型。

[6]void closeSocket():關閉收發數據報套接字。

服務器UDP通訊設計

設計ClientToServerThread線程類:負責UDP通訊,主要是轉發用戶發送的信息,並保存用戶的聊天記錄。

主要方法:

[1]void run():循環等待監聽發來的數據。

[2]void getPropertieInfo():獲取通訊的服務器的IP地址及本機通訊端口。

[3]void sendData(byte buffer[]):發送數據。

[4] void Object ByteToObject(byte[] bytes):將Byte數據轉爲Object類型。

[5]void ObjectToByte(Object obj):將Object型數據轉爲Byte型。

[6]void closeSocket():關閉收發數據報套接字。

數據訪問層的實現

2.1.4.1 打開數據庫鏈接類(ConnectionFactory)

[1]void getPropertiesInfo():從配置文件中獲取數據庫鏈接信息。

[2]Connection getConnection():打開數據庫鏈接。

2.1.4.2 關閉數據庫鏈接類(DbClose)

[1]void getPropertiesInfo():從配置文件中獲取數據庫鏈接信息。

[2]void close(Connection conn):關閉數據庫鏈接。

[3]void close(PreparedStatement pre):關閉數據庫語句

[4]void close(ResultSet rs):關閉結果集

[5]voidclose(Connection conn, PreparedStatement pre, ResultSet rs)

2.1.4.3 數據操做類(Dml)

[1]void insert(UserInfoBean user):增長新用戶,插入信息。

[2]void update(UserInfoBean user):更新用戶信息。

[3]void delete(int qq):刪除信息。

(搜索)

(4)界面層的實現

登陸界面

JLoginFrm登錄窗體主要用於用戶登錄,註冊和找回密碼。

內部類:

BackgroundPanel 繼承於JPanel主要用於設置窗體背景圖片

主要函數:

1.actionPerformed(ActionEvent e)主要對窗體的按鍵監聽

2.JLoginFrm()構造函數,控件的初始化。

註冊界面

JRegisterFrm繼承與JFrame主要用於用戶基本信息的註冊。

主要函數:

  1. Void setDay()根據不一樣的年份和月份設置天數

2.String getBir()以1-1月-2014形式獲得用戶的生日

3.getUserInfo()獲得用戶的全部信息

聊天界面

ChatPanel主要用於用戶間的聊天通訊

主要函數:

一、setMessage()設置當前顯示全部會話的面板,不可編輯

二、setSendMessage()設置當前發送消息的面板,可編輯

三、sendMessage()發送消息,講發送消息面板的內容發送到會話面板和對方。

四、sendFile()傳輸文件

五、sendImage()發送圖片

六、startShake()發送震動消息

主界面

public class findFriendFrm extends JFrame

//該類負責查找好友界面

[1] public String getName()//得到找到好友的暱稱或者QQ號

[2] public class InformationFrm extends JFrame

//該類負責顯示好友信息的界面

用戶信息界面

好友信息界面主要是將從服務端讀取的好友的我的信息顯示出來。

[1] publicInformationFrm(UserInfoBean userInfo)

//在該構造方法中必須傳入一個UserInfoBean 的對象,此對象中包含了好友的全部信息

[2] public class selectGroupFrm extends JFrame

//該類負責顯示添加好友的一個界面

相關文章
相關標籤/搜索