聊天程序项目规划(张晨 宋浪峰 贺小宽组)

小组成员:张晨 宋浪峰 贺小宽数据库

项目名称:聊天系统服务器

小组分工:核心功能:张晨,宋浪峰 界面:贺小宽 调试:张晨,宋浪峰并发

完成设想: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

//该类负责显示添加好友的一个界面

相关文章
相关标签/搜索