JAVA课程设计-聊天室

  • 格式:doc
  • 大小:582.14 KB
  • 文档页数:73

课程设计报告课程名称: Java程序设计课程代码:题目: 聊天室年级/专业/班:学生姓名:学号:指导老师:开题时间:完成时间:目录摘要 (I)1 引言 (1)2 设计任务与目的 (1)3 需求分析 (1)3.1 系统用例图 (1)3.2 主要用例分析 (2)4 系统设计 (3)4.1 总体设计 (3)4.1.1 系统类图 (3)4.1.2 主要时序图 (6)4.2 详细设计 (8)4.2.1 ChatServer类 (9)4.2.2 ServerListen类 (10)4.2.3 ServerReceive类 (10)4.2.4 PortConf类 (11)4.2.5 Help类 (11)4.2.6 UserLinkList类 (11)4.2.7 Node类 (12)4.2.8 ChatClient类 (13)4.2.9 ConnectConf类 (15)4.2.10 UserConf类 (15)4.2.11 Help类 (16)4.2.12 ClientReceive类 (16)5 系统实现 (16)5.1 系统主要用例的实现 (16)5.1.1 聊天室服务端用例运行效果 (17)5.1.2 聊天室客户端用例运行效果 (18)5.2 系统发布与运行 (18)5.2.1 系统打包 (18)5.2.2 系统发布与运行 (18)6 结束语 (19)参考文献 (19)致谢 (19)附录A:系统源程序 (20)1、ChatServer类 (20)2、ServerListen类 (31)3、ServerReceive类 (32)4、UserLinkList类 (36)5、Node类 (39)6、PortConf类 (40)7、Help类 (42)8、ChatClient类 (44)9、ClientReceive类 (56)10、ConnectConf类 (58)11、UserConf类 (61)12、Help类 (63)附录B:编码规范 (66)摘要本课程设计我们通过聊天室的代码实现,体会到将理论知识与具体实现相结合,巩固Java相关方法。

聊天室共分为服务器端和客户端两部分,服务器端程序主要负责侦听客户端发来的消息,客户端需登陆到服务器才可以实现正常的聊天功能。

本聊天系统以聊天交流为主,为广大用户提供一个借助网络进行人际交往的平台,也是网络与现实最贴近的实用型网站。

关键词:(3-5个,每个之间用分号隔开)聊天室;多线程;C/S模式AbstractThe course design our chat room through the code, understand the theoretical knowledge and practical realization of the combination, the consolidation of java-related methods. Chat client and the server is divided into two parts, the client, server-side program is mainly responsible for listening client sent the news to be landing the client to the server will be realized only if the normal chat. The chat system to exchange-based chat, in order to provide customers with a network platform for interpersonal communication, but also network with the reality of the practical is the closest site.Key words:Chat rooms, multi-threaded, C / S mode聊天室1 引言随着互联网逐步普及,人们的生活和工作也越来越离不开信息网络的支持,而聊天室是人们最常见,最直接的网上交流的方式。

本聊天系统以聊天交流为主,为广大用户提供一个借助网络进行人际交往的平台,也是网络与现实最贴近的实用型网站。

本文所介绍的网络聊天系统是基于开放的JAVA应用程序开发设计的,其主要特性是能动态、实时的完成信息的传递,且具有高效的交互性,更有效的处理客户请求,且具有脱离数据库技术方法,易于维护和更新的特点。

2 设计任务与目的本聊天室程序基于C/S模式,聊天室共分为服务器端和客户端两部分,服务器端程序主要负责侦听客户端发来的消息,客户端需登陆到服务器才可以实现正常的聊天功能。

通过本项目的设计实践,力求熟练掌握GUI程序设计、多线程技术、基于TCP的Socket通信编程。

3 需求分析本系统所要实现的主要功能是为广大用户提供一个借助网络进行人际交往的平台。

因为服务端采用多线程,所以性能有很大提升。

因为服务端和客户端之间采用TCP协议进行网络通信,建立的是可靠的、端到端的网络连接,所以可靠性和安全性都很好。

3.1 系统用例图图3-1 系统用例图3.2 主要用例分析服务器端的主要功能如下:1,在特定端口上进行侦听,等待客户端连接2,用户可以配置服务端的侦听端口,默认端口为8888. 3,向已经连接到服务端的用户发送系统消息。

4,统计在线人数5,当停止服务时,断开所有的用户连接。

客户端的主要功能如下:1,连接到已经开启的聊天服务的服务端。

2,用户可以配置要连接服务器端的IP地址和端口号。

3,用户可以配置连接后显示的用户名。

4,当服务器端开启的时候,用户可以随时登录和注销。

5,用户可以向所有人或者某一个人发送消息。

4系统设计4.1 总体设计4.1.1 系统类图图4-1-1 服务端系统类图图4-1-2 客户端系统类图4.1.2 主要时序图图4-2-1 服务端主要时序类图图4-2-2 客户端主要时序类图4.2 详细设计聊天室服务器端的设计聊天室服务端主要包括7个类,放在server包中:4.2.1 ChatServer类图4-3 ChatServer类图ChatServer.java包含名为ChatServer的public类,其主要功能为定义服务器端的界面,添加时间监听与时间处理。

调用ServerListen类来实现服务端用户上线与下线的监听,调用ServerListen来实现服务器端的消息收发。

4.2.2 ServerListen类图4-4 ServerListen类图ServerListen.java该类实现服务器用户上线与下线的监听。

该类对用户上线下线的监听是通过调用用户链表类(UserLinkList)来实现的。

当用户上线与下线情况发生变化时,该类会对主类的界面进行相应的修改。

4.2.3 ServerReceive类图4-5 ServerReceive类图ServerReceive.java该类是实现服务器消息收发的类,该类分别定义了向某用户及所有人发送消息的方法,发送的消息会显示在主界面类的街面上。

4.2.4 PortConf类图4-6 PortConf类图PortConf.java该类继承自Jdialog,是用户对服务器端监听端口进行修改配置的类。

4.2.5 Help类图4-7 Help类图Help.java服务端程序帮助类。

4.2.6 UserLinkList类图4-8 UserLinkList类图UserLinkList.java用户链表节点的具体实现类。

该类通过构造函数构造用户链表,定义了添加用户、删除用户、返回用户数、根据用户名查找用户、根据索引查找用户这5个方法。

4.2.7 Node类图4-9 Node类图Node.java用户链表的节点类,定义了链表中的用户。

该类与前面所讲的链表节点Node类的功能相当。

聊天室客户端设计聊天室客户端主要包括5个类,放在client包中:4.2.8 ChatClient类图4-10 ChatClient类图ChatClient.java包含名为ChatClient的public类,其主要功能为定义客户端的界面,添加时间监听与事件处理。

该类定义了Connect()与DisConnect()方法实现与客户端的连接与断开连接。

当登陆到指定的服务器时,调用ClientReceive类实现消息收发,同时该类还定义了SendMessaga()方法来其他用户发送带有表情的消息或悄悄话。

4.2.9 ConnectConf类图4-11 ConnectConf类图ConnectConf.java该类继承自Jdialog,是用户对所有要连接的服务器IP及监听端口进行修改配置的类。

4.2.10 UserConf类图4-12 UserConf类图UserConf.java该类继承自Jdialog,是用户对链接到服务器时所显示的用户名进行修改配置的类。

4.2.11 Help类图4-13 Help类图Help.java客户端程序的帮助类。

4.2.12 ClientReceive类图4-14 ClientReceive类图ClientReceive.java该类是实现服务器端与客户端消息收发的类。

5 系统实现5.1 系统主要用例的实现图5-1 聊天室服务端用例运行效果图图5-2 聊天室客户端用例运行效果图5.2 系统发布与运行5.2.1 系统打包使用MyEclipse自带的打包工具分别将server包和client包中的.class文件打成两个Jar包:ChatServer.jar和CharClient.jar 。

5.2.2 系统发布与运行将server包和client包中的.class文件打成两个Jar包,就可以发布系统了。

直接分别双击两个Jar包(ChatServer.jar和CharClient.jar),就可以运行服务端和客户端了。

6 结束语Java面向对象程序设计是一门应用广泛并且实用性极强的高级程序设计语言。

通过本次课程设计,我们对面向对象的基本思想有了进一步的理解,对项目的各个阶段的任务也有了一定的了解。

设计开始阶段必须明确设计的目的与需求分析,总体设计要全面分析聊天室系统的架构。

通过这次设计,使我们认识到体系的架构是最重要的,只有准确的系统设计、很好的定义各个模块及模块之间的关系,才能在编码阶段更轻松的的实现。

通过这次课程设计,对我们的逻辑思维能力是一个很大的锻炼,它不仅加强了我们的系统思考问题的能力,而且还改变了我们以前不好的编程习惯,虽然花费了不少的时间,但是我们学到了丰富的知识。

另外,此次课程设计也提高了我们的团对合作精神,让我们明白不是不能一个人能单独完成,而是要集思广益,结合更多的人的创意思维。