多人聊天程序课程设计报告
- -- 计算机科学与技术系
课程设计报告
2013~2014学年第一学期
课程Java语言程序设计
课程设计名称多人聊天程序
专业班级10计本(2)班
姓名*****
指导教师*****
2013年10月11号
- . -word资料-
- -- 一、需求分析
聊天工具大多数由客户端程序和服务器程序外加服务器端,本程序采用客户机/服务器架构模式。通过Java提供的Socket类来连接客户机和服务器并使客户机和服务器之间相互通信,由于聊天是多点对多点的而Java提供的多线程功能。用多线程可完成多点对多点的聊天。
主要有两个应用程序,分别为服务器程序和客户端程序。服务器应用程序主要用于消息转发,以及向所有用户发送系统消息等;客户端应用程序主要用于客户聊天记录的显示和信息输入。采用Client/Server(C/S)体系结构,即客户机/服务器体系结构。聊天服务器专门用于监控用户状态和转发消息,客户端负责接收消息的用户序列和消息文本发送到服务器。该聊天系统实现私聊,群聊,用户登陆,退出聊天系统等功能。
二. 设计
1.设计思想:
课程设计中利用JAVA实现基于C/S模式的聊天程序。聊天室共分为
服务器端和客户端两部分,服务器端程序主要负责侦听客户发来的消息,
客户端登录到服务器端才可以实现正常的聊天功能。
- . -word资料-
- --
- . -word资料-
- --
2.功能设计
(1)服务器端的主要功能如下。
在特定端口上进行侦听,等待客户端连接。用户可以配置服务端的侦
听端口,默认端口为8888.
向已经连接到服务端的用户发送系统消息。
统计在线人数。
当停止服务时,断开所有用户连接。
- . -word资料-
- -- (2)客户端的主要功能如下。
连接到已经开启聊天服务的服务端。
用户可以配置到连接服务器的IP地址和端口号。
用户可以配置连接后显示的用户名。
当服务器端开启的话,用户可以随时登录与注销。
用户可以向所有人或者某一个人发送消息。
3.详细设计
聊天室服务器端设计
聊天室服务器主要包括7个文件,他们功能如下。
(1)ChatServer.java
包含名为ChatServer的public类,其主要功能为定义服务器端的界
面,添加事件侦听与事件处理。调用ServerListen 类来实现服务端用户
上线与下线侦听,调用ServerReceive类来实现服务器端的消息收发。
(2)ServerListen.java
该类实现服务端用户上线与下线的侦听。该类对用户上线下线的侦听
通过调用用户链表来实现,当用户上线与下线情况发生的时候,该类会对
主类的界面进行相应的修改。
(3)ServerReceive.java
该类是实现服务器消息收发的类,该类分别定义了向某用户及所有人
发送消息的方法,发送消息会显示在主界面类的界面上。
(4)Portconf.java
- . -word资料-
- -- 该类继承自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
- . -word资料-
- -- 该类继承自Jdialog,是用户对连接到服务器时所显示的用户名进行
修改配置的类。
(5)Help.java
客户端程序的帮助类。
三. 调试及测试
1、调试过程中遇到的主要问题及解决方法
程序中主要问题为:
(1)套接字的通信问题
网络上两个程序通过一个双向的通信链接实现数据交换,每一端都建立一个Socket,通过对Socket的读写操作实现网络的通信功能。Socket通信程序的基本结构的基本结构主要有创建Socket、打开连接到Socket的输入流和输出流、按照一定的协议对Socket进行读写操作、关闭Socket这四个步骤。为了完成Socket通信,http://www.77cn.com.cn 包中提供了Socket 和ServerSocket这两个类,
他们分别用来表示双向连接的客户端和服务器。构造函数如下:
Socket(Inetaddress address,,int port)
Socket (Inetaddress address, int port, Boolean stream)
Socket (String host ,int port)
Socket (String host ,int port, Boolean stream)
ServerSocket (int port)
ServerSocket ( int port, int count)
通信模型中首先在客户机和服务器之间定义一套通信协议,并创立一个Socket 类,利用这个类建立一条可靠的链接;客户端发出请求,服务器端监听来自客户机的请求,并为客户端提供响应服务。要是实现套接字的服务器端,要使用SocketServer类。它允许程序绑定一个端口等待客户端的请求,一旦产生客户- . -word资料-
- -- 端请求,它将接受这一请求,同时产生一个完整的Socket连接对象。服务器绑定端口必须公开,以便让客户端程序知道如何连接这个服务器。同时作为服务器,它必须能 …… 此处隐藏:3910字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [实用文档]李践-有效提升销售的12大黄金法则8-大
- [实用文档]党支部换届工作方案
- [实用文档]2013年下期电子商务专业部宣传工作计划
- [实用文档]方庄一矿通风、钻探绩效工资考核管理办
- [实用文档]项目一 认识企业物流认识企业物流
- [实用文档]MBI_Display_产品蓝图规画
- [实用文档]北京市建筑业劳务作业人员普法维权培训
- [实用文档]锅炉燃烧调整与运行优化
- [实用文档]4支付结算业务的核算
- [实用文档]米什金_货币金融学_第9版各章学习指导
- [实用文档]水泥混凝土路面硬化工程施工组织设计
- [实用文档]钢筋工程安全技术交底书
- [实用文档]关于公布华中师范大学本科毕业论文
- [实用文档]太原市园林绿化施工合同范本 2
- [实用文档]周日辅导 初中英语分类复习单项选择题(
- [实用文档]第四章 文化经纪人的管理形式 第二节
- [实用文档]学宪法讲宪法竞赛题库
- [实用文档]《数值计算方法》期末考试模拟试题二
- [实用文档]爱词霸学英语:每日一句( 十月)
- [实用文档]2014年国家公务员面试:无领导小组讨论
- 新课程主要理念和教学案例分析汇编(24
- 英国人的快乐源于幸福的家庭生活
- 七年级上册第一次月考模拟数学试卷
- 真丝及仿真丝的种类有哪些?
- 【最新】华师大版八年级数学下册第十六
- 高中英语3500个必背单词
- 我可以接受失败,但我不能接受放弃!
- 最近更新沪科版八年级物理上册期末试卷
- 绿化工作先进乡镇事迹材料
- 鲁教版九年级上册思想品德教学计划
- 英语音标的分类
- 地下室底板无梁楼盖与普通梁板结构形式
- 美容师黄金销售话术
- 雅思写作满分作文备考方法
- 血清甲状腺激素测定与高频彩色多普勒超
- 1度浅析装修对室内空气品质的影响
- 2017-2022年中国汞矿行业深度分析与投
- 计算机二级VB公共基础知识
- (何勇)秸秆禁烧_重在寻找出路
- 内外墙抹灰工程分包施工合同1




