版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java软件开发文档名称:网络聊天室开发人员:刘军令、刘晶刘军令09网络2009011920本系统是本系统是java基于c/s模式的聊天室程序。聊天室共分为服务器端本系统是本系统是java基于c/s模式的聊天室程序。聊天室共分为服务器端和客户端两个部分,服务器端程序主要负责侦听客户端发来的消息,客户端需要登录到服务器端才能实现正常的聊天功能。本系统是本系统是java基于c/s模式的聊天室程序。聊天室共分为服务器端本系统是本系统是java基于c/s模式的聊天室程序。聊天室共分为服务器端本系统是本系统是java基于c/s模式的聊天室程序。聊天室共分为服务器端本系统是本系统是java基于c/s模式的
2、聊天室程序。聊天室共分为服务器端服务器端:服务器与客户间通过套接口Socket(TCP)连接。JavaAPI为处理套接口的通信提供了一个类.Socket.,使得编写网络应用程序相对容易服务器采用多线程以满足多用户的请求,并通过创建一个ServerSocket对象来监听来自客户的连接请求,默认端口为1001,然后无限循环调用accept()方法接受客户程序的连接。本系统是本系统是java基于c/s模式的聊天室程序。聊天室共分为服务器端本系统是本系统是java基于c/s模式的聊天室程序。聊天室共分为服务器端本系统是本系统是java基于c/s模式的聊天室程序。聊天室共分为服务器端本系统是本系统是ja
3、va基于c/s模式的聊天室程序。聊天室共分为服务器端客户端:客户通过服务器与客户都通过构造客户端:客户通过服务器与客户都通过构造Socket(InetAddress,port)建立与服务器的连接。ObjectlnputStream、PrintStream来建立输本系统是本系统是java基于c/s模式的聊天室程序。聊天室共分为服务器端本系统是本系统是java基于c/s模式的聊天室程序。聊天室共分为服务器端本系统是本系统是java基于c/s模式的聊天室程序。聊天室共分为服务器端本系统是本系统是java基于c/s模式的聊天室程序。聊天室共分为服务器端入输出流,然后双方通过该输入输出流来相互传递信息,
4、一旦收到客户方的连接请求,服务器accept()方法返回一个新建的Socket对象。本系统是本系统是java基于c/s模式的聊天室程序。聊天室共分为服务器端本系统是本系统是java基于c/s模式的聊天室程序。聊天室共分为服务器端本系统是本系统是java基于c/s模式的聊天室程序。聊天室共分为服务器端本系统是本系统是java基于c/s模式的聊天室程序。聊天室共分为服务器端客户端然后向服务器发送消息,比如注册,登录等,服务器收到来自客户的请求后,针对不同的消息处理请求。一、需求分析为了满足人们网络聊天的需求,作为一个即时聊天系统,本程序需要实现的功能包括服务器端的功能和客户端的功能。其中服务器端需
5、要为了满足人们网络聊天的需求,作为一个即时聊天系统,本程序需要实现的功能包括服务器端的功能和客户端的功能。其中服务器端需要本系统是本系统是java基于c/s模式的聊天室程序。聊天室共分为服务器端本系统是本系统是java基于c/s模式的聊天室程序。聊天室共分为服务器端本系统是本系统是java基于c/s模式的聊天室程序。聊天室共分为服务器端本系统是本系统是java基于c/s模式的聊天室程序。聊天室共分为服务器端能够处理用户注册、登录、聊天、监控聊天内容、过滤非法信息。客户端需要能够得到用户登录界面及结果、用户注册界面及结果、用户户端需要能够得到用户登录界面及结果、用户注册界面及结果、用户本系统是本
6、系统是java基于c/s模式的聊天室程序。聊天室共分为服务器端本系统是本系统是java基于c/s模式的聊天室程序。聊天室共分为服务器端本系统是本系统是java基于c/s模式的聊天室程序。聊天室共分为服务器端本系统是本系统是java基于c/s模式的聊天室程序。聊天室共分为服务器端聊天界面及结果、用户退出功能。本程序实现的功能有:1、服务器端a.在特定端口上进行侦听,等待客户端连接。c.可以显示用户的聊天信息并向已经连接的客户端发送系统消息。d.统计当前在线人数。f保存服务器日志到指定文件。g显示在线用户列表并执行踢人操作。2、客户端:a首次使用程序执行注册操作,设定昵称、密码、头像、邮箱等个人信
7、息。b已经注册用户可执行登陆操作。c登陆界面之后、用户可看到在线用户列表,根据个人需求选择群聊(对所有人发送消息)或选择在线用户中一人进行私聊。d为了丰富用户的视觉感官、满足其需求,在聊天界面用户可根据喜好更改聊天对话框的字体、大小、颜色及样式。e用户可根据需求对聊天窗口进行清屏操作。f用户可以将聊天记录保存到本地指定的文件夹。g为方便用户操作,特添加快捷键操作,如“发送”为CTRL+N,“退出”为CTRL+X。二、结构图用户注册:首次登陆用户设置自己的昵称、密码、头像等个人信息用户登陆:在服务端开启的情况下,已注册用户通过验证昵称、密码等信息与服务其进行连接登入聊天界面用户接受和发送消息:通
8、过与服务器的连接在线用户间进行群聊或私聊、发送信息并且接受到别的用户发送的消息显示在线用户列表:显示所有登陆的用户列表用户设置:根据用户需求进行字体等的设置退出:关闭所有聊天并退出客户端启动服务:启动服务器,并开始在设置的端口中监听,客户端用户可以登陆并开始聊天退出服务:关闭服务器,监听结束,客户端不能再聊天发送系统消息:服务器端给所有用户发送消息显示消息记录:可以显示所有用户的聊天记录和上线、下线信息用户管理:服务器端可以根据在线用户列表执行“踢人”操作端口服务:开放特定端口1001进行服务服务器端:AppServer.java为服务器端启动界面,数,最多在线人数,服务器名称,访问协议,服务
9、器以及用户信息的管理,日志的保存。ServerFrame.java为服务器端程序界面,面服务。负责监服务器的状态,IP,服务器端口负责为服务器的启动提供界在线人Connection.java是连接服务器和客户端的桥梁,主要负责将客户端的信息传送给服务器,并将服务器端的信息反馈给客户端。WordFilter.java负责将聊天过程中不合法的话语文件等过滤掉。客户端:ChatClient.java为客户端程序启动类,负责客户端的启动和退出。Login.java为客户端程序登陆界面,负责用户账号信息的验证与反馈Register.java为客户端程序注册界面,负责用户账号信息的注册验证与反馈Chatr
10、oom.java为客户端程序聊天室主界面,负责接收、发送聊天内容与服务器端的Connection.java合作Clock.java为客户端程序的一个小程序,实现一个钟表的功能三、主要模块的程序流程图用户注册流程:用户登陆流程:用户聊天流程图:ChatClient启动客户端Register用户窗体监听器ChatRoom聊天主窗体Login用户登录窗体ChatMessage聊天数据聊天数类型据类型服务器控制Connection处理所有用户请ServerFrameAppServer启动服务器Wordfilter总体流程图开始丿r启动服务器1四、开发过程中遇到的主要问题及解决方法1、怎样使服务器端能够
11、设置登录聊天室的上线最多人数解决方法:if经过思考要实现这个功能首先要使服务器端能够响应键盘的编辑,然后在客户登录时读取服务器端编辑的最大人数值并用语句加以判断是否超过人数上限来决定能否登陆。具体代码如下:解决方法:ifServerFrame.java:txtMax.addKeyListener(newKeyAdspter(/接收键盘事件也油象适酉己器类publicvoidkeyReleased(KeyEventke)/聲圣放某键时调用此方去JTextFieldjtf=(JTextField)k?e.g已匸Scrxu已门;最初发生笛三丫壬于已11匚1对象ir-axNumpublicvoidke
12、yReleased(KeyEventke)/聲圣放某键时调用此方去JTextFieldjtf=(JTextField)k?e.g已匸Scrxu已门;最初发生笛三丫壬于已11匚1对象ir-axNum=工c匸皂g皂工.卫曰rselnt(jtfg皂匸T皂x匸()匸工:2、怎样实现键盘快捷键功能解决方法:通过查类库手册知道可以用javax.swing.AbstractButton中的setMnemonicDD方法设置当前模型上的键盘助记符。助记符是某种键,Alt组合时将激活此按钮。助记符不区分大小写,所以具有相应键代码的键事件将造成按钮被激活,不管是否按下Shift修饰符。如果在按钮的标签字符串中发现
13、由助记符定义的字符,则第一个出现的助记符将是带下划线的,以向用户指示该助记符。例如为服务器界面上的保存日志按钮添加键盘快捷键功能代码为:3、实现用户保存聊天记录时文件名自定义11暑假抄写计算器是我对java的面向对象有了基本的感觉,但是通解决方法:JOptionPane有助于方便地弹出要求用户提供值或向其发出通知的标准对话框,利用该对话框使用户可以输入自定义文件名,然后将文件保存在程序规定的指定位置。在触发保存按钮时调用saveMassageU)方法,在该方法中添加如下语句publicvoidsaveMessage(publicvoidsaveMessage(tryStringfileNaic
14、e=JCptionPane.sJiopZnpLitDialogfnullr“请输入你想保存的文件的名称FrEnt皂工yourfileNam皂利*JOptionPaneQUESTICV!JESSAGE;/F新添加的功能:让用户选择要保存的文件名/*FileOutputStreair.filecutpTat=newFile-OutputStxeair.(thiss匸工匸口9丄皿壬定+rmeb3age匕孟匸1匸工/这正源程序的代码Fi1eOatput51resigfileoutpat=newFileOatputStreaiE(fil皂N耳it皂*true);Stringterr.p=taUserMe
15、sssg皂g皂匸T皂xt(;/SysteiE口匸printIn(ten;fileautpatwrite(teir.pgetBytes(;fileoutputclose();JOptionPaneshovM&ssag&Dia1og(uul1P17聊天记录1呆存在“+壬1皂1:心皿皂+冋文件中FP;aatch(Exc皂pisJciiieSyst皂ieout.RHintLn(已);五、没有实现的需求及其原因未能实现查看好友资料功能、未能实现发送图片表情原因:时间有限、要实现实现在原有程序基础上改动到理想的功能要做较大的改动,来不及完成这两项的修改。六、心得体会过这次考试,我最深的感觉是:编程最重要的不是语言怎么写,或者功能怎么实现,而程序的算法。也真正地体会到你的那句话:“你如果能用大白话把一个程序的运行过程清晰、完整地表述出来,你就可以用java把它写出来了。”的确如此,最重要的是你的程序的逻辑,java语言本身只是实现的方式,是次要的。网络是很重要的资源,几乎什么问题都可以通过网络自己解决,记得张孝祥老师说:“你不用了解每个类、每个方法,当用到的时候查看一下javadocument就行了”,以前我认为这个观点很对,并一直按照这个方法学java。通过这次考试我发现了一个更好的java学习方式:网络!就是说有什么问题都通过网络解决。(当然,在有一定的语言基础上)以前
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026河南安阳市文旅集团招聘工作人员16人备考题库附答案详解ab卷
- 2026西安市北方医院招聘备考题库(15人)及答案详解(全优)
- 2026湖南教师邵阳县编制教师招聘17人备考题库及答案详解参考
- 2026陆军第七十二集团军医院高层次人才引进及第一批招聘聘用人员33人备考题库含答案详解(完整版)
- 2026宁夏中卫工业园区管理委员会招聘安全监管人员6人备考题库附答案详解(精练)
- 2026福建厦门市集美区松山实验幼儿园顶岗教师招聘1人备考题库附答案详解(综合卷)
- 2026宁波农商发展集团有限公司招聘1人备考题库附答案详解(基础题)
- 2026湖南株洲攸县人民医院招聘27人备考题库含答案详解(满分必刷)
- 2026四川雅安市第九中学选调事业人员2人备考题库附答案详解(综合卷)
- 2026新疆博尔塔拉周年博乐市边合区产业发展投资有限公司招聘1人备考题库及答案详解(网校专用)
- 海南省5年(2021-2025)高考物理真题分类汇编:专题09 热学与光学(原卷版)
- 云财务知识培训课件
- 2025年电力工程师高级职称评审要点与面试题库及答案
- 2025年空军军队文职技能岗考试文化活动复习题及答案
- 电力市场交易管理办法
- 【《人脸识别技术中个人信息保护的法律规制探析》10000字】
- 政府绩效管理(第二版)课件 方振邦 第1-4章 政府绩效管理概述-政府绩效监控
- 2026年高考数学一轮复习策略《指向深度学习的高中数学教学策略》讲座
- 生物质颗粒采购合同范本
- 青海教师退休管理办法
- 码头防风防汛管理制度
评论
0/150
提交评论