- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
java软件开发文档带图【荐】.doc
Java软件开发文档
名称:网络聊天室
开发人员:刘军令、刘晶
刘军令 09网络 2009011920
本系统是java基于c/s模式的聊天室程序。聊天室共分为服务器端和客户端两个部分,服务器端程序主要负责侦听客户端发来的消息,客户端需要登录到服务器端才能实现正常的聊天功能。
Socket(TCP)连接。Java API为处理套接口的通信提供了一个类java.net.Socket.,使得编写网络应用程序相对容易.服务器采用多线程以满足多用户的请求,并通过创建一个ServerSocket对象来监听来自客户的连接请求,默认端口为1001,然后无限循环调用accept()方法接受客户程序的连接。
客户端:客户通过Socket(InetAddress,port)建立与服务器的连接。服务器与客户都通过构造ObjectInputStream、PrintStream来建立输入输出流,然后双方通过该输入输出流来相互传递信息,一旦收到客户方的连接请求,服务器accept()方法返回一个新建的Socket对象。客户端然后向服务器发送消息,比如注册,登录等,服务器收到来自客户的请求后,针对不同的消息处理请求。
一、需求分析
为了满足人们网络聊天的需求,作为一个即时聊天系统,本程序需要实现的功能包括服务器端的功能和客户端的功能。其中服务器端需要能够处理用户注册、登录、聊天、监控聊天内容、过滤非法信息。客户端需要能够得到用户登录界面及结果、用户注册界面及结果、用户聊天界面及结果、用户退出功能。
本程序实现的功能有:
1、服务器端
a. 在特定端口上进行侦听,等待客户端连接。
c.可以向已经连接的客户端发送消息。
d.统计在线人数。
用户注册:首次登陆用户设置自己的昵称、密码、头像等个人信息
用户登陆:在服务端开启的情况下,已注册用户通过验证昵称、密码等信息与服务其进行连接登入聊天界面
用户接受和发送消息:通过与服务器的连接在线用户间进行群聊或私聊、发送信息并且接受到别的用户发送的消息
显示在线用户列表:显示所有登陆的用户列表
用户设置:根据用户需求进行字体等的设置
退出:关闭所有聊天并退出客户端
启动服务:启动服务器,并开始在设置的端口中监听,客户端用户可以登陆并开始聊天
退出服务:关闭服务器,监听结束,客户端不能再聊天
发送系统消息:服务器端给所有用户发送消息
显示消息记录:可以显示所有用户的聊天记录和上线、下线信息
用户管理:服务器端可以根据在线用户列表执行“踢人”操作
端口服务:开放特定端口1001进行服务
服务器端:
AppServer.java为服务器端启动界面,负责监服务器的状态,在线人数,最多在线人数,服务器名称,访问协议,服务器IP,服务器端口以及用户信息的管理,日志的保存。
ServerFrame.java为服务器端程序界面,负责为服务器的启动提供界面服务。
Connection.java是连接服务器和客户端的桥梁,主要负责将客户端的信息传送给服务器,并将服务器端的信息反馈给客户端。
WordFilter.java负责将聊天过程中不合法的话语文件等过滤掉。
客户端:
ChatClient.java为客户端程序启动类,负责客户端的启动和退出。
Login.java为客户端程序登陆界面,负责用户账号信息的验证与反馈
Register.java为客户端程序注册界面,负责用户账号信息的注册验证与反馈
Chatroom.java为客户端程序聊天室主界面,负责接收、发送聊天内容与服务器端的Connection.java合作
Clock.java为客户端程序的一个小程序,实现一个钟表的功能
三、主要模块的程序流程图
用户注册流程:
用户登陆流程:
用户聊天流程图:
总体流程图:
四、开发过程中遇到的主要问题及解决方法
1、怎样使服务器端能够设置登录聊天室的上线最多人数
解决方法:经过思考要实现这个功能首先要使服务器端能够响应键盘的编辑,然后在客户登录时读取服务器端编辑的最大人数值并用if语句加以判断是否超过人数上限来决定能否登陆。具体代码如下:ServerFrame.java:
Connection.java在ServerLogin()方法中添加if语句如下:
2、怎样实现键盘快捷键功能
解决方法:通过查类库手册知道可以用javax.swing.AbstractButton中的setMnemonic()方法设置当前模型上的键盘助记符。助记符是某种键,组合时将激活此按钮。 助记符不区分大小写,所以具有相应键代码的键事件将造成按钮被激活,不管是否按下 Shift 修饰符。如果在按钮的标签字符串中发现由助记符定义的字符,则第一个出现的助记符将是带下划线的,以向用户指示该助记符。 JOptionPane 有助于方便地弹出要求用户提供值或向其发出通知的
您可能关注的文档
- GSM网优答辩问题汇总【荐】.doc
- GSM网络规划和优化-GSM网络小区参数【荐】.ppt
- GSM网络规划和优化-跳频-20050426-B-1.4【荐】.pdf
- GSM网规网优【荐】.pdf
- GSM网规网优部基于MR的网络优化工作指导书V1.0【荐】.doc
- GSM高层室内优化【荐】.pdf
- Gu 3G视频会议_Windows Mobile版产品概述【荐】.doc
- gxl 软件体系结构 第二章【荐】.ppt
- HASCO_运营管理信息系统_System Test Summary Report模板【荐】.doc
- HASCO_运营管理信息系统_User Acceptance Test Summary Report模板【荐】.doc
- 【高华证券-2025研报】箭头制药公司(ARWR):第46届全球医疗保健会议——关键要点.pdf
- 【Bernstein-2025研报】耐克和阿迪达斯:宝胜- 5月的连续改善.pdf
- 【高华证券-2025研报】哥伦比亚:5月通胀低于预期,因节日价格正常化和租金增长放缓;年度通胀指标下降.pdf
- 【Bernstein-2025研报】联发科(2454):速评:联发科-若剔除外汇拖累,月度销售追踪略高于2025年第二季度市场预期.pdf
- 【高华证券-2025研报】Vista集团(VGL):小盘股片段:Vista集团(VGL;未覆盖):云转型加速.pdf
- 【高华证券-2025研报】法国巴黎银行(BNPP):法国巴黎银行(BNPP.PA):深入探讨个人理财业务.pdf
- 【Bernstein-2025研报】T-Mobile美国公司(TMUS):T-Mobile:西弗特仍是掌舵的合适人选.pdf
- 【Bernstein-2025研报】华纳兄弟探索公司(WBD):华纳兄弟探索公司:第一步-流媒体公司和线性电视公司。第二步?.pdf
- 【Bernstein-2025研报】台达电子工业股份有限公司(2308):台达电子月度销售:若不存在外汇逆风,2025年第二季度收入有望超预期.pdf
- 【Bernstein-2025研报】欧洲资本货物:电动革命:分化-资本货物正在离场?.pdf
文档评论(0)