多人聊天程序课程设计报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

合肥学院

计算机科学与技术系

课程设计报告

2011~2012学年第二学期

课程Java语言程序设计

课程设计名称多人聊天程序

专业班级09网络工程(2)班

姓名胡永雷

指导教师张贯虹张艳明

2012年9月

一、需求分析

聊天工具大多数由客户端程序和服务器程序外加服务器端,本程序采用客户机/服务器架构模式。通过Java提供的Socket类来连接客户机和服务器并使客户机和服务器之间相互通信,由于聊天是多点对多点的而Java提供的多线程功能。用多线程可完成多点对多点的聊天。

主要有两个应用程序,分别为服务器程序和客户端程序。服务器应用程序主要用于消息转发,以及向所有用户发送系统消息等;客户端应用程序主要用于客户聊天记录的显示和信息输入。采用Client/Server(C/S)体系结构,即客户机/服务器体系结构。聊天服务器专门用于监控用户状态和转发消息,客户端负责接收消息的用户序列和消息文本发送到服务器。该聊天系统实现私聊,群聊,用户登陆,退出聊天系统等功能。

二、设计

1.设计思想:

课程设计中利用JAVA实现基于C/S模式的聊天程序。聊天室共分为服

务器端和客户端两部分,服务器端程序主要负责侦听客户发来的消息,客

户端登录到服务器端才可以实现正常的聊天功能。

图1-1

开始

启动服务器

判断启动信息

启动客户端

判断登录信息

登录聊天室

退出聊天室

结束

注册用户

退出服务器

图1-2

2.功能设计

(1)服务器端的主要功能如下。

在特定端口上进行侦听,等待客户端连接。用户可以配置服务端的侦

听端口,默认端口为8888.

向已经连接到服务端的用户发送系统消息。 统计在线人数。

当停止服务时,断开所有用户连接。 (2)客户端的主要功能如下。

连接到已经开启聊天服务的服务端。

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

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

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

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

3.详细设计

聊天室服务器端设计

聊天室服务器主要包括7个文件,他们功能如下。

(1)ChatServer.java

包含名为ChatServer的public类,其主要功能为定义服务器端的界面,添加事件侦听与事件处理。调用ServerListen 类来实现服务端用户上线与下线侦听,调用ServerReceive类来实现服务器端的消息收发。

(2)ServerListen.java

该类实现服务端用户上线与下线的侦听。该类对用户上线下线的侦听通过调用用户链表来实现,当用户上线与下线情况发生的时候,该类会对主类的界面进行相应的修改。

(3)ServerReceive.java

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

(4)Portconf.java

该类继承自JDialog,是用户对服务器端侦听端口进行配置的的类。

(5)Node.java

用户链表的节点类,定义了链表中的用户。

(6)UserLinkList.java

用户链表节点的具体实现类,该类通过构造函数构造用户链表,定义了添加用户、删除用户、返回用户数、根据用户名查找用户、根据索引查找用户这五个方法。

(7)Help.java

服务器端的帮助类。

聊天室客户端设计

聊天室客户端主要包括5个文件,他们的功能如下。

(1)Chatclient.java

包含名为 Chatclient的Public类,其主要功能为定义客户端的界

面,添加事件侦听与事件处理。该类定义了Connect()与Disconnect()

方法实现与服务器连接与断开连接。当SendMessege()方法来向其他用户

发送带有表情的消息或者悄悄话。

(2)ClientReceive.java

该类是实现服务器端与客户端消息收发的类。

(3)ConnectConf.java

该类继承自Jdialog,是用户所要连接的服务器IP及侦听端口进行修

改配置的类。

(4)UserConf.java

该类继承自Jdialog,是用户对连接到服务器时所显示的用户名进行

修改配置的类。

(5)Help.java

客户端程序的帮助类。

三、调试及测试

1、调试过程中遇到的主要问题及解决方法

程序中主要问题为:

(1)套接字的通信问题

网络上两个程序通过一个双向的通信链接实现数据交换,每一端都建立一个Socket,通过对Socket的读写操作实现网络的通信功能。Socket通信程序的基本结构的基本结构主要有创建Socket、打开连接到Socket的输入流和输出流、按照一定的协议对Socket进行读写操作、关闭Socket这四个步骤。为了完成Socket通信, 包中提供了Socket 和ServerSocket这两个类,他们分别用来表示双向连接的客户端和服务器。构造函数如下:

Socket(Inetaddress address,,int port)

Socket (Inetaddress address, int port, Boolean stream)

相关文档
最新文档