聊天程序項目規劃
小組成員:張晨 宋浪峰 賀小寬
項目名稱:聊天系統
小組分工:核心功能:張晨,宋浪峰 界面:賀小寬 調試:張晨,宋浪峰
完成設想:
運行環境:eclipse
使用語言:Java語言。
使用數據庫:SQL server 數據庫。
功能需求
(1)客戶端:提供登錄、主窗體及聊天等界面及對應的業務,向服務器發送相應的服務請求,并接受相應的處理結果。客戶端只負責鏈接遠程服務器,并發出相應的服務請求,不進行核心業務的處理。具體的處理交給服務器,而客戶端只接收服務器處理的結果并顯示給用戶。

(2)服務器:監控登錄信息及在線用戶信息,接收客戶端的服務請求,并做相應的處理,然后將處理結果發送給客戶端。服務器負責處理核心的業務,并負責連接數據庫,保存和讀取數據。

(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主要用于用戶間的聊天通信
主要函數:
1、setMessage()設置當前顯示所有會話的面板,不可編輯
2、setSendMessage()設置當前發送消息的面板,可編輯
3、sendMessage()發送消息,講發送消息面板的內容發送到會話面板和對方。
4、sendFile()傳輸文件
5、sendImage()發送圖片
6、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
//該類負責顯示添加好友的一個界面
浙公網安備 33010602011771號