1、企业实时通讯系统功能模块的设计与实现Server启动服务器: 1、读取数据库中所有用户资料,公告,留言。 2、侦听3000号端口 3、启动服务器线程(等待客户端的连接) 4、启动服务器端工作线程SwitchThread 5、启动数据库定时更新线程(Timer对象) 6、此时服务器启动完毕,有三个线程工作: 一个等待客户端连接,一个负责C-S之间消息传递,另一个负责定时刷新数据库 服务器端工作Client启动客户端:1、创建登陆界面收集用户信息2、发起到服务器的连接3、接收服务器的初始化信息(这步及其之后)4、启动客户端工作线程5、初始化主界面并显示,完成登陆6、此时客户端有一个线程工作:接收来
2、自服务器的信息7、发送到服务器的消息由事件驱动客户端工作ClientServer客户端发起连接,发送登录用户基本信息,等待服务器的应答Y/N服务接受连接,验证连入用户的合法性,返回控制字符:Y继续发送初始化信息 并创建与客户端一对一通讯的实体ServerThread N-释放资源,等待客户端 的再次连接客户端与服务器端的初始交流Client客户端主类 创建LoginDiag登录界面、ClientFrame(客户端主界面) 与服务器的通信-实际是由LoginDiag对象调用了Client的connect()方法开始了与服务器的传输层通信 Client的login()方法接收服务器端来的初始化信息
3、列表保存在Client中-实际是由LoginDiag对象调用了Client的login()方法-并由该方法启动客户端主线程-run()-(LoginDiag根据调用Client的login()后的返回值来确定是否显示客户端主界面)LoginDiag登录界面 1. 收集登陆或者注册信息(由“登陆”,”注册”按钮分别处理) 2. 创建Client中的Soc et对象, 接服务器, 调用Client的connect()方法 . 收集 的登陆或者注册信息用 登陆服务器, 调用Client的login()方法 . 接收服务器的 回 . 回 登陆信息 -显示 信息,登陆界面 ,登陆界面 存在 登陆 . 回
4、 -通 , 显示客户端主界面, LoginDiag对象 . 交Client对象ClientFrame客户端主界面1. 显示2. 显示. 显示用户登陆并实时currency1-在线用户列表“在线用户列表. 显示用户来的 时信息DiagFrame对fifl 用 用户的 时信息显示 与 定用户对fi的fl 客户端主线程run()客户端线程run()接收来服务器的”息服务器 utut rea对象来的 (C)-交ClientFrame显示 时信息(F) -交ClientFrame由ClientFrame创建DiagFrame 线用户()-交ClientFrame显示 线用户(D) -交ClientFrame显示 服务器对(D)的回 ()- 线程 流“Soc et对象ClientFrame后 Stem.e it() 客户端中 服务器 ”息的方法 Client的en()根据接收者的在线 信息 服务器 Client的logo ()通 服务器 用户