暑期项目作业.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
暑期作业 一、引言 本文围绕Java编程语言在网络编程方面的具体应用,论述了使用面向对象方法,对计算器程序进行需求分析、概要设计、详细设计,最后使用Java编程实现的全过程。 二、需求分析 2.1 开发背景: 在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,网络聊天时一类的聊天系统的发展日新月异,因此产生了制作一个网络聊天工具的而且通过制作该程序还能更好的学习网络软件编程知识.2.2 功能要求: 3.1 设计思想 整个系统分为服务器和客户端,服务器端维护各个客户端的信息。客户端的所有信息发往服务器端,再由服务器进行消息的分析处理并做出相应的控制,服务器端是所有信息的中心。 服务器端可以查看所有用户的聊天记录,监控所有用户的状态,发出用户上线、离线提示等公告,客户端则提供接收公告的功能。 本课程设计按照系统的具体功能要求,首先应用Socket编程创建客户端和服务器端,每多个客户端服务器端就会相因的创建一个线程,它们之间通过这个连接来实现数据通信;然后在客户端设置一个监听器,用于监听服务器发来的消息。并根据消息做出不同的动作。 3.2系统功能 该系统实现了用户之间的点对点单人聊天,在线用户之间的群聊。为了加强之间的信息交流,还实现了用户之间文件传输、语音聊天。在客户端和服务器端都可以查看历史消息、保存消息、清空消息。为了监控用户之间的状态,服务器还可以实现踢掉用户的功能,同时用户时间文件传输的信息都会在服务器上显示。 3.3系统架构 1)2)分Java应用程序用户界面的开发工具包3.4 模块设计 3.4.1 服务器端: 主要实现向各个客户端发布系统消息,接受来自客户端的各种信息并分别处理。具体功能如下: ①连接控制: 包括启动服务器、断开服务器以及断开某个客户端的连接; ②管理作用: 包括对参与聊天者的昵称进行修改以及向所有或某个客户端发送消息,维护一个IP地址和昵称所对应的哈希表,以便定位到正确的客户端,且有权强制修改用户昵称; ③刷新列表: 在有用户登陆或离开的时候实时更新列表,并将信息反馈到各个客户端; ④登陆信息: 检查用户是否已登陆,如登录,发消息通知所有用户。同时刷新在线用户列表; ⑤聊天记录: 能保存聊天记录,实现消息的保存、清空以及查看等功能; ⑥消息处理: 解析客户端与服务器端的消息交互类型,并做出相应处理,能够找到消息所对应的接收端。 3.4.2 客户端: 主要实现向服务器端发布消息,并且对来自服务器的消息做出相应的响应。具体功能如下: ①连接功能: 输入服务器地址,实现登录及断开功能 ②登录设置: 登录时,发送消息使服务器端获得相关登录信息,昵称及IP地址记录到服务器端维持的哈希表,断开后发送消息使IP地址及昵称从哈希表中删除; ③监听作用: 实现对服务器发送过来的消息进行监听的功能; ④消息处理: 接收由服务器端发送来的信息,并做出相应的响应; ⑤聊天记录: 实现聊天记录的保存、清空以及查看等功能; ⑥消息处理: 相应从服务器端接收到的消息交互类型,实现用户与用户之间的信息交互和文件交互; 四、详细设计与实现 4.1 服务器端 4.1.1 服务器 该段功能由Server.java文件中的Server类实现,具体实现过程如下: ①启动服务并接收连接:服务器的任务首先是建立一个由IP地址到昵称的映射的哈希表,用于存放用户的基本信息;启动服务器后,等候建立一个连接,然后用这个连接产生的Socket创建一个Client,同时检查该用户是否已存在哈希表中,若以存在,则提示该次连接请求失败,从而实现限制IP的目的;若不存在,则将该IP地址及其昵称或默认昵称的映射添加到哈希表中,接着服务器端向所有的用户发送管理信息,提示有新的用户登录,并且将刷新后的用户列表同时发送到各个客户端。 ②关闭服务:服务器端遍历哈希表,关掉每一个用户对应的Socket,之后,关闭服务Server。 ③管理作用之发送消息: 服务器端解析由客户端发送的请求,若控制字以“SPECIAL”开头,则通过控制字后的昵称从哈希表中找到对应的用户,实现服务器端到客户端的点对点消息交互;若不是以“SPECIAL”开头,则实现消息的广播发布。 ④管理作用之修改昵称:首先判断新的昵称是否在哈希表中存在,若已存在则给出错误提示,否则通过该用户的旧昵称在哈希表中查找到该用户,并用欲修改的昵称替换掉原昵称;接着刷新服务器端的用户列表显示,最后刷新客户端的用户列表显示。 ⑤管理作用之断开连接:若要断开某个客户端与服务器的连接,首先向该用户发送被管理员请出系统的信息,然后通过该用户的昵称从哈希表中找到对应socket、service及IP地址等信息,再从每一项信息对应的列表里删除该用户的信息,最后关闭该用户的s

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档