




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java网络程序设计大作业分组报名表项目名称简易聊天应用程序的设计与实现项目功能网络聊天室通常直称聊天室,是一种人们可以在线交谈的网络论坛,在同一聊天室的人们通过广播消息进行实时交谈。运用java程序编写聊天室,实现简单的聊天功能。它是图形界面,线程,流与文件系统等技术的综合应用。程序实现了聊天室的基本功能,其中肩:1 .启动服务器。2 .启动登陆界面。3 .进入客户端界面。4 .发送信息。5 .离开客户端界面。6 .关闭服务器。团队成员姓名性别年级院、系、专业学号备注计算机科学与技术计算机科学与技术计算机科学与技术计算机科学与技术指导教师姓名研究力向软件设计职称团队联系方式联系人姓名联系电话
2、邮件地址邮编五、作品设计、实现难点分析团队介绍人员分工创作背景功能概要相关技术作品可行性分析功能性需求非功能性需求服务端界面实现客户端界面实现登录实现聊天功能实现退出功能实现难点分析解决方案测试结果错误!未定义书签。错误!未定义书签。错误!未定义书签。错误!未定义书签。错误!未定义书签。错误!未定义书签。错误错误错误错误错误!未定义书签。错误!未定义书签。错误!未定义书签。错误!未定义书签。错误!未定义书签。错误!未定义书签。错误!未定义书签。错误!未定义书签。错误!未定义书签。错误!未定义书签。错误!未定义书签。、团队介绍及人员分工团队介绍吴益帆:有良好的统筹能力和领导力,能合理安排各组员工
3、作。张咪:踏实耐心,有良好的创新能力和策划能力。沈丹丹:勤奋刻苦、有钻研精神,对待编程工作热情细心,孜孜不倦。吴晓晓:对待工作细致专注,设计能力较强。团队成员之间有较好的默契度及协作性。分工明确,各司其职,在共同的努力及相互的配合下,共同解决程序中出现的困难并尽可能的优化程序,最终完成整个项目。人员分工吴益帆:负责程序最后的整理,完成部分功能及错误的处理。张咪:负责程序的编码部分及项目具体功能的实现。沈丹丹:负责程序的界面部分,为改程序搜索解决的方案。吴晓晓:负责程序的策划部分,项目的可行性分析及文档的编写工作。二、作品概述创作背景网络聊天室通常直称聊天室,是一种人们可以在线交谈的网络论坛,在
4、同一聊天室的人们通过广播消息进行实时交谈。在当今信息时代,越来越多的聊天工具被应用,java语言是当今流行的网络编程语言,它具有面向对象,与平台无关,安全,多线程等特点。使用java语言不仅可以实现大型企业级的分布式应用系统,还能够为小型的的,嵌入式设备进行应用程序的开发。面向对象的开发是当今世界最流行的开发方法,它不仅具有更贴近自然地语义,而且有利于软件的维护和继承,锻炼我们熟练地应用面向对象的思想和设计方法解决实际问题的能力。功能概要运用java程序编写聊天室,实现简单的聊天功能。它是图形界面,线程,流与文件系统等技术的综合应用。其界面主要采用了包,包等。程序实现了聊天室的基本功能,其中有
5、:(1) 服务器端功能描述:启动服务器端:点击“开启”按钮,启动服务;端口服务:输入服务器的某个端口号,开启服务器的这个端口;显示在线用户信息:在右边的用户列表显示所有在线的用户信息;显示用户聊天信息:在左边的聊天信息区域内显示所有用户所发的信息;服务端关闭:点击“关闭按钮,关闭服务。(2) 客户端功能描述:启动客户端:运行客户端程序,启动客户端;选择服务器端口号:输入想要连接的服务器的端口号;用户登录:填入用户名,点击“登录”按钮,连接相应服务器;显示在线用户:在右边的用户列表中可以看到当前在线的用户;发送/接受聊天消息:在下面的文本输入区域输入要发送的内容,点击发送可以在左边的聊天信息区域
6、内显示自己以及其他用户所发的信息;用户离线:点击“离线”按钮,与服务器断开连接;客户端关闭:关闭客户端图形用户界面,关闭客户端。相关技术(1) Java概述JAVA语言有下面一些特点:简单、面向对象、分布式、解释执行、鲁棒、安全、体系结构中立、可移植、高性能、多线程以及动态性。丰富的类库JAVA提供了大量的类以满足网络化、多线程、面向对象系统的需要。语言包提供的支持包括字符串处理、多线程处理、数学函数处理等,可以用它简单地实现JAVA程序的运行平台。实用程序包提供的支持包括哈希表、堆栈、可变数组、时间和日期等。输入输出包用统一的"流"模型来实现所有格式的I/O,包括文件系统
7、、网络、输入低级网络包用于实现Socket编程。抽象图形用户接口包实现了不同平台的计算机的图形用户接口部件,包括窗口、菜单、滚动条、对话框等,使得JAVA可以移植到不同平台的机器。网络包支持Internet的TCP/IP协议,提供了与Internet的接口。它支持URL®接,WWW:即时访问,并且简化了用户/服务器模型的程序设计。(2) 套接字Socket,简称套接字,用于实现网络上客户和服务器之间的连接。也就是说网络上两个或两个以上双工方式通信的进程之间总有一个连接,这个连接的端点成为套接字,套接字是在比较低的层次上通信的。具体的说:一个服务器应用程序一般侦听一个特定的端口等待客户
8、端的连接请求,当一个连接请求到达时,客户端和服武器端建立一个通信连接,在连接过程中,客户端被分配一个本地端口与一个Socket建立连接,客户端通过写Socket来通知服务器,以读Socket中的信息,类似的服务器也获得一个本地端口,它需要一个新的端口号来侦听原始端口上的其他连接请求。服务器也通过它的本地端口连接一个Socket,通过读写和客户端通信。Socket程序的工作过程:1. 建立Socket连接:在通信开始之前由通信双方确认身份,建立一条专用的虚拟连接道。2. 数据通信:利用虚拟连接通道传送数据信息进行通信。3. 关闭:通信结束时,再将所建的虚拟连接拆除。作品可行性分析由于本软件知识一
9、个聊天程序,程序只提供用户之间的聊天功能,故对网络传输数据要求不是很高,只要正常的传输速度就可以了。三、需求分析功能性需求本聊天室分为聊天室服务端和聊天室客户端,服务端与客户端之间通过套接字Socket(TCP)连接。在java中使用套接字相当简单,JavaAPI为处理套接口的通信提供了一个类使得编写网络应用程序相对容易服务器采用多线程以满足多用户的请求,并通过创建一个ServerSocket对象来监听来自客户的连接请求,默认IP地址为:localhost默认端口为8888。(1) 聊天室服务端模块,包括端口服务、启动服务、关闭服务、显示在线用户、显示用户聊天信息,如图所示;图聊天室服务端模块
10、图端口服务:输入要侦听的端口,默认为8888;启动服务:启动服务器,并开始在设置的端口中侦听,客户端用户可以登录并开始聊天;关闭服务:关闭服务器,侦听结束。客户端用户不能再聊天;显示在线用户:服务器列表显示在线用户数和所有在线用户名称;显示用户聊天信息:在文本区中显示所有用户聊天信息和登录、退出信息。(2) 聊天室客户端模块,包括用户登录、用户离线、连接设置、发送和接收聊天信息、显示在线用户、退出,如图所示:图聊天室客户端模块图用户登录:只能在聊天室服务端已开启的情况下,用户点击“按钮”才能登录,用户登录之后才能开始聊天,登录后不能再修改用户设置和连接设置;用户离线:用户点击“离线”按钮,退出
11、聊天,与服务器断开连接;连接设置:用户可以设置自己连接的服务器的IP地址和端口号,默认的连接地址为:localhost:8888;发送和接收聊天信息:用户可以给所有人发送信息,并能看到其他用户发送给所有人的消息;显示在线用户:服务器列表显示在线用户数和所有在线用户名称;退出:关闭所有聊天并退出客户端。(3) 程序流程:首先启动服务器,用户打开客户端,输入服务器端口号,再输入用户名就可以登录,登录以后会显示当前在线的用户信息,用户可以看到其他用户所发的信息,自己也可以发送信息。用户点击离线就会与服务器断开连接,最后关闭服务器,如图所示:图程序流程图非功能性需求(1) 安全需求本程序能防卫禁止未登
12、录用户进行通信,防止数据丢失,需要输入用户名、端口号连接相应的服务器才允许用户间的通信。(2) 性能需求本程序使用的对象是所有运行该程序的用户,用户在连接服务器可以进行客户端之间的通信。(3) 易用性需求本程序的使用对象计算机水平一般,有一定的易用性上的要求,程序应当存在着一些友好性的提示,提高程序的友好度。(4) 可维护性需求本程序能够及时发现并纠正系统故障,对系统数据进行备份,有系统还原功能。(5) 健壮性需求本程序在遭遇非法输入数据,能够排除该数据并继续运行;对于系统异常有完备的预警预防处理机制。四、作品实现服务端界面实现在服务端启动后,要显示“简易聊天室服务器”的图形用户界面,如图所示
13、:图服务端图形用户界面“简易聊天室服务器”的图形用户界面实现的主要代码如下:private private private private private private private privateLabelsvrIP=newLabel("服务器IP:");TextFieldshowSvrIP=newTextField();LabelsvrPort=newLabel("服务器端口:");TextFieldgetSvrPort=newTextField("8888");Buttonenter=newButton("启动&q
14、uot;);TextAreaoutput=newTextArea();Labeluser=newLabel("当前在线用户(0)");Listlist=newList();privatevoidsetup()Paneltop=newPanel();(newFlowLayout();(svrIP);(bg);(showSvrIP);(bg);(svrPort);(bg);(getSvrPort);(bg);(enter);(bg);Paneleast=newPanel();(newBorderLayout();("North",user);(bg);(&q
15、uot;Center",list);(bg);setLayout(newBorderLayout();add("North",top);(bg);add("East",east);(bg);add("Center",output);(bg);setBackground(bg);点击“启动”按钮,开启默认的服务器888端口,如图所示:图服务端端口开启8888端口开启实现代码如下:tryserver=newServerSocket(getSvrPort.getText();rightNow=().getTime().toLoca
16、leString();(rightNow+"n开启服务器.nn");("关闭");ht=newHashtable();ht_s=newHashtable();st=newServerThread();serving=true;catch(IOExceptionioe)("Error:"+ioe+"n'n");客户端界面实现在客户端启动后,显示“简易聊天室客户端”的图形用户界面,如图所示:图客户端图形用户界面“简易聊天室客户端”的图形用户界面实现的主要代码如下:privateButtonB_login=new
17、Button("登陆");privateButtonB_logout=newButton("离线");privateButtonB_send=newButton("发送");privateLabeluserName=newLabel("您的用户名:");privateTextFieldgetUserName=newTextField();etTime().toLocaleString();(rightNow+"n登录失败请使用合法用户名.nn");if(accepted)rightNow=().
18、getTime().toLocaleString();(rightNow+"n您已成功登陆.nn");login=true;图服务端显示用户服务端向在线用户发送当前在线用户列表代码实现如下:login=true;(userName);("User("+()+")");String口str=();line="A"etTime().toLocaleString();.(rightNow+"n"+userName+"登陆.n'n");客户端获取当前在线用户列表代码实现如下:
19、String口str=("");for(inti=1;i<i+)(stri);("当前在线用户("+()+")");聊天功能实现开启多个客户端,并登录。在输入框中输入信息,点击“发送”,数据传送至服务端(如图所示),再由服务端数据发送给其他客户端。每个客户端都接收服务端发送过来的数据,并显示在消息框中,如图所示。图服务端显示消息用户发送消息代码实现如下:privatevoidsendMsg()if(!login)return;tryif().equals("")("n发送内容不能为空请重新输入nn");return;("M"+();("");catch(IOExceptionioe)("Error:"+ioe+"n'n"
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 临床三级考试试题及答案
- 交规安全考试试题及答案
- 航空电源考试试题及答案
- 眼科器械考试试题及答案
- 初级注安考试试题及答案
- 北京货车驾驶员考试试题及答案
- 时政考试试题及答案
- 徐水社区考试试题及答案
- 2025年电子消费行业深度研究分析报告
- 环保技术秘密共同开发与保护合作协议
- 信息技术系统故障应急恢复方案及保障措施
- 大数据算法学习通超星期末考试答案章节答案2024年
- DB11T 3034-2023 建筑消防设施检测服务规范
- 激光武器(原创完整)课件
- 2023-2024年全国初中化学竞赛试卷及答案
- 中医内科学-痹证
- 2024图书馆领域大模型创新应用需求调研报告V0-WN8正式版
- GB/T 10069.3-2024旋转电机噪声测定方法及限值第3部分:噪声限值
- 网络安全宣传周网络安全知识手册学习课件
- 2024年公文写作基础知识竞赛试题库及答案(共220题)
- 2024年江苏省镇江市中考化学试卷(含答案解析)
评论
0/150
提交评论