JAVA课程设计聊天室系统

合集下载

一种基于Java技术的聊天室系统的设计与实现

一种基于Java技术的聊天室系统的设计与实现
维普资讯

种基于 Jv 技术的聊天室系统的设计与实现 aa
胡少 峰 , 赵 克 , 春 霞 耿
707 ) 1 0 1 ( 安 电子 科 技 大 学 研 究 生 院 , 安 西 西
摘 要 : 章 简 要 介 绍 了 J P ( a a S r e a e 文 S J v e v r P g )以 及 J C ( a a aa a e DB J v D tb s
J E E B等 。J v 2 E、 J a a技 术 从 推 出 至 今 仅 几 年
的时 问 , 以其 完 全 的 面 向对 象 风 格 , 作 平 就 操
台 的无 关 性 、 全性 、 安 健壮 性 、 移 植 性 、 可 中性 等 优 点 , 受 国 内外 软 件 开 发 人 员 的 欢 迎 。 深
We b应 用 的 一 般 过 程 为 : 置 好 We 设 b服 务
0 引 言
Jv a a技 术 是 由 美 国 S n公 司 倡 导 和 推 u 出 的 。 a a技 术 包括 J v Jv a a语 言 和 J v da a aMe i
A PI 、J v Ap lt a a s aa p e 、J v Ap l a i n、J v p i to c aa
RM I J v a s J P、 a a S r l t J 、 a a Be n 、 S J v e ve 、 DBC、
器 ; 发 J v pe 开 a a Ap lt或 C in piain l t Ap l t e c o 作为 客户 端程 序, 轻 服 务器 的负担 ; 减 用 J P、a aB a s J v e ve 、 J 等 构 建 在 S J v e n 、a aS r lt E B 服 务 器 端 运 行 的 服 务 程 序 ; 最 底 层 设 计 良 在 好 的 数 据 库 系 统 ; 户 以 HTTP 或 者 RM I 客

本科毕业论文-基于JAVA的聊天系统的设计与实现【范本模板】

本科毕业论文-基于JAVA的聊天系统的设计与实现【范本模板】

摘要随着互联网的快速发展,网络聊天工具已经作为一种重要的信息交流工具,受到越来越多的网民的青睐.目前,出现了很多非常不错的聊天工具,其中应用比较广泛的有Netmeeting、腾讯QQ、MSN-Messager等等。

该系统开发主要包括一个网络聊天服务器程序和一个网络聊天客户程序两个方面。

前者通过Socket套接字建立服务器,服务器能读取、转发客户端发来信息,并能刷新用户列表。

后者通过与服务器建立连接,来进行客户端与客户端的信息交流。

其中用到了局域网通信机制的原理,通过直接继承Thread类来建立多线程。

开发中利用了计算机网络编程的基本理论知识,如TCP/IP协议、客户端/服务器端模式(Client/Server模式)、网络编程的设计方法等。

在网络编程中对信息的读取、发送,是利用流来实现信息的交换,其中介绍了对实现一个系统的信息流的分析,包含了一些基本的软件工程的方法。

经过分析这些情况,该局域网聊天工具采用Eclipse为基本开发环境和java 语言进行编写,首先可在短时间内建立系统应用原型,然后,对初始原型系统进行不断修正和改进,直到形成可行系统关键词:局域网聊天 socket javaAbstractAlong with the fast development of Internet,the network chating tool has already become one kind of important communication tools and received more and more web cams favor. At present, many extremely good chating tools have appeared . for example,Netmeeting, QQ,MSN—Messager and so on. This system development mainly includes two aspects of the server procedure of the network chat and the customer procedure of the network chat。

java聊天室部分主要代码

java聊天室部分主要代码

ChatClient.javaimport java.awt.*;import java.io.*;import .*;import java.applet.*;import java.util.Hashtable;public class ChatClient extends Applet implements Runnable{ Socket socket=null;DataInputStream in=null;//读取服务器端发来的消息DataOutputStream out=null;//向服务器端发送的消息InputInfo 用户名提交界面=null;UserChat 聊天界面=null;Hashtable listTable;//用于存放在线用户的用户名的散列表Label 提示条;Panel north,center;Thread thread;public void init(){setSize(1000,800);int width=getSize().width;int height=getSize().height;listTable=new Hashtable();setLayout(new BorderLayout());用户名提交界面=new InputInfo(listTable);int h=用户名提交界面.getSize().height;聊天界面=new UserChat("",listTable,width,height-(h+5));聊天界面.setVisible(false);提示条=new Label("正在连接到服务器...",Label.CENTER);提示条.setForeground(Color.red);north=new Panel(new FlowLayout(FlowLayout.LEFT));center=new Panel();north.add(用户名提交界面);north.add(提示条);center.add(聊天界面);add(north,BorderLayout.NORTH);add(center,BorderLayout.CENTER);validate();}public void start(){if(socket!=null&&in!=null&&out!=null){try{socket.close();in.close();out.close();聊天界面.setVisible(false);}catch(Exception ee){}}try{socket=new Socket(this.getCodeBase().getHost(),6666);in=new DataInputStream(socket.getInputStream());out=new DataOutputStream(socket.getOutputStream());}catch(IOException ee){提示条.setText("连接失败");}//客户端成功连接服务器端if(socket!=null){InetAddress address=socket.getInetAddress();提示条.setText("连接:"+address+"成功");用户名提交界面.setSocketConnection(socket,in,out);north.validate();}if(thread==null){thread=new Thread(this);thread.start();}}public void stop(){try{socket.close();thread=null;}catch(IOException e){this.showStatus(e.toString());}}public void run(){while(thread!=null){if(用户名提交界面.getchatornot()==true){聊天界面.setVisible(true);聊天界面.setName(用户名提交界面.getName());聊天界面.setSocketConnection(socket,in,out);提示条.setText("祝聊天快乐!");center.validate();break;}try{Thread.sleep(100);}catch(Exception e){}}}}ChatMain.javaimport .*;import java.util.*;public class ChatMain {public static void main(String args[]) {ServerSocket server=null;Socket you=null;Hashtable peopleList;peopleList=new Hashtable();while(true){try{//服务器端在端口6666处监听来自客户端的信息server=new ServerSocket(6666);}catch(IOException e1){System.out.println("正在监听");}try{//当服务器端接收到客户端的消息后,取得客户端的IP地址。

基于Java Socket的聊天室系统设计与实现

基于Java Socket的聊天室系统设计与实现
Absr c : n o o k ti ewo k p o r mmig it ra e T i a e nto u e h c a im t a t Wi d ws S c e sa n t r r g a n ne fc . h sp p ri r d c d t e me h n s
户端根据输入 Sr r I e e 的 P地址连入相应的服务器参与聊天活动, v 服务器上显示当前在线的用户信
息 , 对用户进 入或 断开 的信 息加 以显示。 并 关键词 :aa 接 字 ; Jv 套 聊天 室 ; 户端 ; 客 服务器
D I 码 : .9 9 ii n 1 0 2 7 .0 0 0 . 1 O编 1 3 6 /.s . 0 2— 2 9 2 1 .5 0 9 0 s
中图分 类号 :P 9 T 33
文献标识 码 : A
文章编号 :0 2— 2 9 2 1 )5— 0 6— 2 10 2 7 (0 0 O 0 6 0
De in & I lme to a y t m a e n J v c e sg mpe n fCh tS se B s d o a a So k t
ci t o n c dwt cm a besr r n ie h tn codn eI f e e i ut .nte l n cn et i o p t l ev dj ndcat gacri t t Po r r n t d I h e e h i ea o i goh sv p e
H ig j g L a g h n U J — i ,U M n — og n n
( u a io i l n l t m ca i l o t h i, h nsa4 0 2 ,hn ) H n nBo gc dEe r eh n a le n C a gh 1 16 C i l aa co c P yc c a

Java网络聊天室系统

Java网络聊天室系统
panel.add(lb2);
lb2.setPreferredSize(new Dimension(50,30));
lb2.setBounds(100, 150, 100, 30);
panel.add(txtName);
txtName.setBounds(200, 150, 150, 30);
}catch(Exception e){e.printStackTrace();}
public RegisterFrame(LoginFrame loginFrame)
{
this.f = loginFrame;
try
{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); //设置外观为系统本地外观
this.setPreferredSize(new Dimension(500,500));
this.setBounds(screenSize.width/2-250, screenSize.height/2-250, 500, 500);
this.setVisible(true);
getContentPane().add(lb1);
lb1.setFont(new Font("",Font.BOLD,30));
lb1.setBounds(200, 100, 400, 50);
getContentPane().add(panel);
panel.setLayout(null);
panel.setVisible(true);
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

Java课程设计聊天室(含代码)

Java课程设计聊天室(含代码)

Java程序课程设计任务书JAVA聊天室的系统的设计与开发1.主要内容:用JAVA实现基于C/S模式的聊天室系统。

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

2.具体要求(包括技术要求等):系统的功能要求:A.服务器端主要功能如下:1.在特定端口上进行侦听,等待客户端连接。

2.用户可以配置服务器端的侦听端口,默认端口为8888。

3.向已经连接到服务器端的用户发送系统消息。

4.统计在线人数。

5.当停止服务时,断开所有的用户连接。

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

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

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

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

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

学习并掌握一下技术:Java JavaBean 等熟练使用一下开发工具:Eclipse, JCreator 等实现系统上诉的功能。

3.进度安排:12月28日 ~ 12月29日:课程设计选题,查找参考资料12月30日 ~ 1月1日:完成系统设计1月2日 ~ 1月5日:完成程序代码的编写1月6日:系统测试与完善1月7日:完成课程设计报告,准备答辩4.主要参考文献:[1].张广彬孟红蕊张永宝.Java课程设计(案例精编)[M].清华大学出版社.2007年版摘要在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,例如,国外的ICQ、国内腾讯公司开发的OICQ。

基于Java网络编程的强大功能,本次毕业设计使用Java编写一个聊天系统。

一般来说,聊天工具大多数由客户端程序和服务器程序外加服务器端用于存放客户数据的数据库组成,本系统采用客户机/服务器架构模式通过Java提供的Soket类来连接客户机和服务器并使客户机和服务器之间相互通信,由于聊天是多点对多点的而Java提供的多线程功能用多线程可完成多点对多点的聊天,数据库管理系统用SQL Server2000完成并通过JDBC-ODBC桥访问数据库。

Java聊天室的设计与实现毕业设计论文

Java聊天室的设计与实现毕业设计论文

毕业设计说明书Java聊天室系统的设计与实现2017 年 5 月 17日Java网络聊天室系统的设计与实现摘要:计算机从出现到现在有了飞速的发展,现阶段的计算机已经不单单是用于进行运算的独立的个体了,跟随计算机一同发展的还有互联网技术,经过了长久的发展,互联网技术有了日新月异的发展,它的发展速度和计算机的发展速度一样的恐怖,从出现一直到现在,它已经在人们的生活的各个方面发挥着自己的作用,而且是不可替代的作用。

因为计算机发展到现在已经成为一种廉价的生活物品,可以预想到未来人们都会使用计算机,上网的人也会逐渐增多,会有不断的人完善和更新出更好更棒的互联网服务,来提高自己的生活水平。

我国近几年经济和社会在不断的发展,互联网也得到了广大的支持,网络更是已经融入了广大人民的日常生活。

在计算机编程方面,互联网软件开发逐步转向以java为首的面向对象的编程技术,传统的面向过程的编程技术已经逐渐退出了历史的舞台,java正以不可思议的速度发展。

人们日常的生活,教育,网银,网购,面对面的网上视频,以及现在逐渐被大众接受的网络游戏都在使用面向对象的技术。

而且java自身的优势以及特点能够真正减少了企业的开发成本和开发人员的开发时间和难度。

在以前,人们获取信息的方式十分单一,通过电视,广播,信件以及人们的口头相传,这种方式效率十分的底下,得到的信息也很局限。

现阶段上网查找成为人们获取信息的主要途径,它具有快速,方便,以及传递的特点。

所以人们对网上的即时面对面聊天产生了需要。

一个界面清新,简单,并且高效的网络聊天室一定会受到大众的喜爱。

为了这个目的,构建此聊天系统。

本文将介绍网络聊天室程序的设计与完成。

关键词:网络聊天室;Java;客户机/服务器;Socket;Java chat room system design and implementation Abstract:With the development of Internet technology, network technology is developing very fast in the area of computer technology, one of emerged from it until now, it in many aspects, such as politics, economy, life play an irreplaceable role. With the growing popularity of the computer and popularization, the future will be more and more people use the Internet, enjoy the constantly update and improve the network services, to improve the level of their work lives. With the development of our economy and the popularization of the Internet, the Internet technology is also used more in the daily life of people. In application development and process oriented programming technology is gradually replaced by object-oriented programming technology, the computer software design and development has become the dominant, especially in the development of network technology, the object-oriented Java language programming is development rapidly in explosive. Remote education, online banking, shopping online, video online, and online games are all using object-oriented Java technology. And Java portable features enable Java programs to be compiled into bytecode that is not relevant to the platform, which enables Java programs to run on machines with Java interpreters. It really reduces the development cost of the enterprise and the development time and difficulty of the developer.In today's society, people's lives have long been inseparable from the Internet. In the future, the life and work of society will depend more on the development of digital technology, more and more networked, digital, electronic and virtualized. E-commerce is also becoming more and more relevant with the development of the Internet and people's life. The use of the development of the Internet and the current situation and development trend, can believe network technology step by step change our work and lifestyle, and social values will all change of step by step.In today's rapid development of network, the query on the Internet become people to quickly get published, and transfer information important channel, it in many aspects, such as people, political economy, life play an important role. Traditional letter-writing methods do not satisfy people's immediate demand for information. Thus, can chat face to face on the Internet become important human needs, a popular chat tools should be: interface and pure and fresh, simple operation, humanity, saving system resources. For this purpose, build the chat system.This paper completes the development of an online chat room program through Java's sockets. This article introduces the design and completion of network chat room program.Key words:chat rooms; the Java; Client / Server;the Socket;目录摘要 (I)Abstract ................................................ 错误!未定义书签。

多人聊天室的设计与实现

多人聊天室的设计与实现

山东财经大学基于JSP+JavaBean+MySQL在线多人聊天室系统设计成员: 06组多人聊天室学院: 计算机科学与技术学院专业:计算机科学与技术关键词:在线聊天室,JSP,MYSQL,JAVABEAN。

概述1 在线聊天室概述聊天室实现的主要功能是:接收各个客户端的聊天信息,然后按照其聊天对象将该信息发送到目标浏览器上。

在一个浏览器的窗口中,既能输入上网者的发言,又能看到自己与他人的聊天记录。

同时,为了便于上网者选择谈话对象,窗口中需要提供目前在线者的名单。

2. 需求分析2.1 确定对系统的综合要求1.功能需求:用户打开浏览器,注册登录,登录成功后选择自己喜欢的房间,点进去聊一下,发现可聊天,这东西可以用;有些玩家大家不喜欢,乱刷屏,就会要求管理员把他踢掉,管理员犀利踢之;有些用户之间的聊天不喜欢被人看到,就有了悄悄话的选项;有些用户喜欢添油加醋,聊天内容字体颜色,动作表情都可以添加。

2.性能需求:为了保证系统能够长期、安全、稳定、可靠、高效的运行,系统应该满足以下的性能需求:如果聊天室长期开发,必须考虑数据库的负载,管理员有清理数据库的权限;本聊天室使用数据库,信息与数据库的连接是很频繁的,我们使用JavaBean,能轻松实现数据库与外部信息的交换;2.2 分析建模2.2.1功能模型数据流图如图2-2所示:图2-2 数据流2.3 系统逻辑模型2.3.1用户信息实体E-R 图JSPJavaBeanMySQL调用返回结果操作数据库 返回记录用户Id 号用户名密码最近登录时间是否为管理员聊天信息所在房间发表人用户名发表对象用户名发表时间动作和表情聊天内容 是否悄悄话Id发送在线用户Id用户名所在房间最近聊天时间登录M 1113. 在线聊天室设计3.1 模块图以上为模块图3.2 模块说明分为4个模块:1.数据库通用管理模块:完成数据库的连接,查询,更新功能 封装在JavaBean 中(DBConn.java) JSP 页面或者其他JavaBean 可以通过调用DBConn 对象的方法 连接 操作数据库。

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

Java课程设计指导书(学生版初稿)第二章聊天室系统目标2.1 背景介绍2.1.1 业务背景2.1.2 技术背景2.2 需求分析2.2.1功能需求分析2.2.2 业务对象分析2.2.3 验收测试要求2.3 系统设计2.3.1 总体设计2.3.2 详细设计2.4 系统实现2.5 小结2.6 展望第二章聊天室系统学习目标:1、理解基于网络的C/S模式的软件系统结构,掌握网络编程的基本概念。

2、了解Java 的多线程机制,掌握Java多线程技术的应用。

3、熟练掌握基于TCP协议的Socket编程。

4、了解Socket编程的协议约定,掌握简单应用协议的开发。

5、进一步巩固发展团队协作能力。

学习寄语:想必大家都用过QQ,其主要功能就是聊天,是不是很想知道它是如何实现的?本项目就是帮你实现一个简单的聊天系统,当然跟商业项目没法比,但从中你却可以了解这些系统是如何实现的,学到开发类似系统的基础知识和基本技能(基本并不意味不实用)。

本章的内容有一定难度(多线程、基于TCP的应用协议编程),所以系统的开发采用了“增量迭代”的开发方式,由简易到繁难,希望你能顺利前行。

我们的信念依然是:“不抛弃,不放弃”。

你的改变和收获依然是老师真诚的期待,期待你更踏实、更自信。

Come on!2.1 背景介绍2.1.1 业务背景随着网络社会的不断发展,具有相同兴趣的网民需要互相远程交流,既要能省钱又要能即时交互,电话太贵、email又嫌慢,所以开发一个类似QQ 的及时通讯系统就变得非常有意义了。

“Happy Chat”聊天系统应运而生,它较之QQ 的唯一好处是自主开发,用的放心,更适合在局域网内使用。

它提供的功能远不如QQ丰富,但应具有如下功能:(1)与聊天室成员一起聊天;(2)可以与聊天室成员私聊;(3)用户注册、登录;(4)服务器监控聊天内容;(5)服务器发送通知;(6)服务器踢人;(7)保存服务器日志。

(8)保存用户聊天信息。

2.1.2 技术背景本系统要求使用java技术开发,使用文件保存数据,集成开发环境使用eclipse。

开发者应有java程序设计语言、SWING基本GUI组件、多线程、文件使用、socket编程、使用eclipse的基本知识和技能。

系统采用两层C/S体系结构,C端负责通过GUI与客户交互,实现注册、登陆、收发信息、退出等功能;S端是聊天系统的应用服务器,主要有处理用户注册、登录、用户收发信息、用户退出等功能。

C端和S端是通过网络交互的,其基本原理如图1所示:图1 C/S通讯基本原理图首先服务器启动,它会建立一个专门用于接收客户端连接请求的“倾听Socket”(相当于总服务台,有固定的IP地址和端口号),然后等待客户的连接请求。

当用户想聊天时,从界面输入信息,然后与服务器建立Socket连接(连接时应指定服务器的IP地址和端口号,而客户端socket的端口由本方操作系统从空闲端口中确定),服务器端的“倾听Socket”收到连接请求后,一般会接受连接请求,并生成一个服务端socket(其端口号由服务端操作系统从空闲端口中确定),专门负责与此客户端socket的通信。

一旦连接请求成功,客户端将信息及请求通过本方socket的输出流发送给服务器端相应的socket,服务端则通过服务器端Socket的输入流接受客户端传输过来的信息及请求,分析是何请求,然后根据请求类型,进行相应的处理(如登录、转发信息等)。

服务方也可以根据需要,通过socket的输出流发信息和请求给客户端(公告)。

客户方和服务方都可以通过关闭本方的socket而结束一次通讯过程。

不难发现服务器需要能同时接受多个客户的请求,为了实现这一点,一般使用多线程机制来处理,对每一个客户端连接通讯,服务器端都有一个线程专门负责处理(相当于一个服务员专门服务一个以IP地址和端口号唯一标识的客户)。

上述方式两个聊天者之间通信必须通过服务器进行转发,聊天者多时,显然服务器是个性能瓶颈。

能不能聊天者之间直接通信?当然可以,这是所谓的P2P 聊天室,缺点是对聊天者缺乏集中监管的手段。

也有界于二者之间的,即有一服务器,接受注册和登录,实际聊天双方通信时,仍然是直接通信,此时服务器相当于一个婚姻介绍所,只管牵线搭桥,具体谈还是聊天者自己的事。

本文主要采用聊天信息通过服务器转发的方式,而且只支持一个聊天室。

因为其他典型系统如电子邮件系统,FTP系统均采用类似结构,WEB服务系统本质上也是C/S系统,只不过其客户端是浏览器,采用了HTTP通信协议和HTML,所以变成了B/S结构,可以认为是C/S的一个具体应用,其机理是相似的。

2.2 需求分析2.2.1功能需求分析系统的主要功能已在业务分析中有所介绍,在这里需要对每个功能从使用者角度作较为具体的分析。

很明显,整个系统的功能可以自然地分为客户端和服务器端。

以下是主要用例描述一客户端1 . 注册(1)客户启动程序,显示出登陆界面(2)客户选择其中的注册按钮,系统显示注册界面(3)客户填写用户名、密码、确认密码、性别、年龄、电子邮件,按确定按钮(4)系统验证密码和确认密码是否相符、用户名(不能重复)、电子邮件格式、年龄(大于10小于100)(5)系统发送上述信息及“注册请求”到服务端,等待服务端返回“注册成功”消息(6)系统提示注册成功(7)系统返回登陆界面若验证失败,提示“重新输入”若服务端返回“注册失败”,提示“注册失败”若服务端返回“注册失败用户名重名”,则提示“注册失败用户重名”。

2. 登录(1)客户启动程序,显示出登陆界面(2)客户填写用户名、密码,服务器IP地址,按登陆按钮(3)系统验证用户名、密码,不能为空、密码字符长度为6-10(4)系统发送用户名、密码及“登陆请求”到服务端,等待服务端返回“登录成功”消息(5)若成功系统显示客户端主界面(收发消息界面)若用户名、密码验证失败,系统提示;“用户名或密码错”,重复3次若仍不能通过验证则客户端程序退出。

若服务端返回“登录失败”,系统提示“用户名或密码错”。

3. 发送信息(1)在客户端主界面,用户输入消息,选择是群发还是私聊,若是私聊还要选择对方用户名,按发送按钮(2)系统验证消息长度, 私聊要求目的方用户名非空。

(3)系统发送信息及“接收消息请求”到服务器端,等待服务端返回“接收成功”消息(等待返回消息可省)。

(4)系统提示信息已发送若发送不成功,则系统提示“发送失败”。

4. 接收信息(1)客户端系统启动,进入主界面后,会显示消息接收框(2)其他客户或服务端系统本身发送消息过来,系统接收,分析确认是”接收消息请求“,则分析提取出消息(3) 在消息接收框逐条显示发送者姓名、发送的消息。

5 退出(1)用户请求退出,按退出按钮(2)系统确认用户退出(对话框)(3)系统发“退出请求”到服务端,等待服务端返回“退出成功”(等待返回消息可省)(4)客户端系统关闭连接,程序退出二服务器端1. 用户注册(1)系统启动后,等待客户请求(2)客户请求到,接受请求,分析确认是“注册请求”(3)系统读取信息,分析并再次验证用户名、密码、确认密码、性别、年龄、电子邮件。

(4)系统根据用户名,在已有客户记录中查询,确认没有重名(5)系统将用户名、密码、确认密码、性别、年龄、电子邮件信息保存(6)系统向客户端发送“注册成功”消息(7)系统在监控界面上写信息:xx客户名已注册注册时间若重名,向客户端发“注册重名”消息若注册失败,向客户端发“注册失败”消息2. 用户登录(1)系统启动后,等待客户请求(2)客户请求到,接受请求,分析确认是“登录请求”(3)系统读取信息,验证用户名、密码是否存在(4)系统验证是否已经登录(5)系统验证用户是否已超过最大用户数(6)系统将客户加入聊天室,通知其它客户“新用户加入”(7)系统向客户端发送“登录成功”消息(8)系统在监控界面上写信息:客户名:已登录登录时间若验证失败,向客户端发“验证失败”消息3. 发送信息(用于管理员向聊天者发送公告信息)(1)系统启动后,等待管理员请求(2)管理员在监控界面输入消息,确定发送类型(群发还是私聊),若私聊还需指定目的用户名,按发送按钮(3)系统读取信息,分析并确认是群发还是私聊(4)若是群发,则将信息发给聊天室内其它所有用户;若是私聊,则将消息发给指定的用户。

(5)系统在监控界面上写信息:管理员--〉消息若出现异常,提示“发送失败”。

4 接收信息(1)系统启动后,等待客户请求(2)客户请求到,接受请求,分析确认是“接收信息请求”(3)系统读取信息,分析并确认是群发还是私聊(4)若是群发,则将信息发给聊天室内其它所有用户(5)系统向客户端发送“接收成功”消息(可省)(6)系统在监控界面上写信息:xx客户名--〉消息群发/私聊若出现异常,向客户端发“接收失败”消息(可省)5用户退出(1)系统启动后,等待客户请求(2)客户请求到,接受请求,分析确认是“用户退出请求”(3)系统从聊天室删除客户,并通知其它用户“客户退出”(4)系统向客户端发“退出成功”(可省),关闭连接。

聊天系统主要应用在局域网,在性能方面要求,客户到客户间消息传输时间不大于5s,传输可靠性要求95%的情况下,消息可以可靠传到目的地,同时在线用户数量不小于200。

友情提示:本需求分析只是分析了主要的用户使用情况,在对客户端进行分析时,聊天者是一个接口,服务方也是一个接口,在对服务端进行分析时,客户端是一个接口,服务方管理员是另一个接口。

在接口处只关心接口处的输入输出,并不关心接口里面是如何实现的。

例如客户端登陆用例分析时,客户发“登录请求”信息到服务端,此时只需关注服务方返回情况,所以只需等待获取服务端返回信息,而无需知道服务方是如何处理的。

服务方如何处理是在服务端登录用例中描述的。

隐含需求的发现。

在登录用例中,客户和服务方都有登录用例,合作完成一个完整的登录过程,密码和用户名的验证一般都能想到,但限制用户数量,同一用户不能重复登录则不太容易想到,这里经验就会起作用,这是第一步,想到了就要向客户提出(必要时解释),具体要不要做由客户决定,则是第二步。

这里还有一个度的把握,因为不可能任何情况都要向客户解释。

经验如何来?学习前人的经验并运用到自己的项目开发中,体会转化为自己的东西应该是个有效途径。

优先级的划分。

作为聊天系统,其主要功能就是聊天,客户间互相发送消息,所以优先级最高的是客户端的发送、接收、退出用例,服务器端的接收、退出用例。

注册、登录用例次之。

而公告、踢人、保存日志及聊天记录、个性化界面等又次之。

优先级划分后,设计实现时,先做优先级高的,例如本系统,为了实现上述全部功能,可以分3次迭代,第一次,实现高优先级的基本聊天功能,第二次实现注册和登录,第三次实现公告、踢人、保存日志及聊天记录等。

相关文档
最新文档