实 训 报 告
课程名称: 山寨版QQ
院 (系): 信息科学与工程学院
专业班级: 计算机网络专业08级2班
课程组长: 王二龙
课程成员: 展召振,于明阔
指导教师: 张晓诺
目 录
1、课程设计概述2
2、课程设计题目描述2
3、系统需求分析与设计2
3.1 系统需求分析2
3.2 系统设计2
3.2.1 系统总体设计2
3.2.2 程序详细设计3
4、系统测试和使用说明5
4.1 系统测试5
4.2 系统使用说明8
5、课程设计总结8
5.1 遇到的问题和解决方法8
5.2 心得体会9
多线程与C/S综合应用——聊天系统
1、课程设计概述
我们的JAVA聊天系统于20年6月,持续时间为周。本次课程设计主要是利用所学的面向对象程序设计语言——JAVA来编写程序,实现特定功能,以加深对的理解。
2、3、多线程功能:当客户端要求与服务器端建立连接时,服务器端就将用到多线程功能,为每一个建立起来的连接创建一个线程。这不需要消息队列,因为所有的线程都是相同的块的一个部分,并且可以共享。这样的程序比单线程模型和STA的执行速度都要因为降低了系统的负载,因而可以优化来减少系统时间ManageClientConServerThread类
ManageClientConServerThread类定义了客户端与服务器端保持通信的线程类,以及如何在进行信息的交流。它用线程来实现,意味着它是独立执行的。
ManageQqChat类
ManageQqChat类是管理用户聊天界面的类,对用户聊天界面的设计都可以通过此类实现,可以加载图片等等
ManageQqFriendList类
ManageQqFriendList类是一管理好友列表,界面和黑名单的类。在其中我们定义了一个私有的静态变量!
QqClientCon类
这个类是用来设计客户端连接服务器后台的类,首先我们发送一个请求,然后进行身份验证验证成功的话,就开始启动通信线程。
QqChat类
这是管理好友聊天界面的类,在这里我们需要事件的监听,并发生事件反应,所以我们使用了ActionListener。
QqClientLogin类
这个是用户登陆界面的类,在其中可以定义北部,中部和南部需要的组件,以及进行监听和处理。
服务器端程序设计:
整合了三个JavaBeans类,对信息进行处理
Message类
信息内容储存类,这是存储信息的公共类。
MessageType类
此类主要用来定义用户收发信息类型的类,通过此类可以改信息的类型。
User类
这个主要是储存用户身份信息的类。用户输入的身份信息,通过此类进行存储。
ManageClientThread 类
这个主要是管理用户线程的类,在这里进行用户线程的处理。
MyQqServer这是服务器类
刚开始他是出于监听状态,默认的是没有启动的,也就是没有建立连接
当我们启动服务器他就开始建立连接。
SerConClientThread类
这是客户端和服务器通信的线程,用这个类说明了在一段时间内使用的线程。
MyServerFrame类
这是服务器的控制界面,通过这个界面我们可以完成服务器的启动和关闭。
4、系统测试和使用说明
4.1 系统测试
使用JDK运行程序时,将Qqserver子目录和 Qqclient子目录下的程序都拷贝到当前目录中,并将存放有背景的放到当前目录中,
运行服务器程序QqServer.jar,启动服务器端,窗口显示如图所示:
图1 服务器运行界面
点击启动服务器,服务器开始启动
运行第一个客户程序,QqClient.jar执行后,windows窗口会显示标题为山寨QQ的登录界面。如图2所示:
图2用户登录界面
登陆成功以后现实 以用户20为例 如图3所示:
图3客户程序的运行界面
在两个客户端程序进行信息的交流的时候。在这里以用户19和20为例如图4所示
图四
4.2 系统使用说明
在进行用户登录之前,我们首先启动服务器,然后从客户端进行登录,我们从中所使用的登录密码是 123456 用户名是1到50之间,由于我们的技术有限所以没有设计数据库。
5、课程设计总结
5.1 遇到的问题和解决方法心得Swing控件Swing控件
- 9 -