Java专业课程设计方案报告.doc
《Java专业课程设计方案报告.doc》由会员分享,可在线阅读,更多相关《Java专业课程设计方案报告.doc(11页珍藏版)》请在咨信网上搜索。
JAVA网络编程课程设计汇报 局域网内多功效聊天室设计和实现 院 系: 计算机科学和技术学院 班 级: 设 计 者: 学 号: 指导老师: 设计时间: 2月5日--2月13日 哈尔滨工业大学(威海) 二〇一〇年二月 哈尔滨工业大学(威海)课程设计任务书 姓 名 学 号: 院(系): 计算机科学和技术学院 专 业:信息安全 任务起止日期: 课程设计题目:局域网内多功效聊天室 问题叙述和分析: 网络编程目标就是指直接或间接地经过网络协议和其它计算机进行通讯。网络编程中有两个关键问题,一个是怎样正确定位网络上一台或多台主机,另一个就是找到主机后怎样可靠高效进行数据传输。在TCP/IP协议中IP层关键负责网络主机定位,数据传输路由,由IP地址能够唯一地确定Internet上一台主机。而TCP层则提供面向应用可靠或非可靠数据传输机制,这是网络编程关键对象,通常不需要关心IP层是怎样处理数据。现在较为流行网络编程模型是用户机/服务器(C/S)结构。即通信双方一方作为服务器等候用户提出请求并给予响应。用户则在需要服务时向服务器提出申请。服务器通常作为守护进程一直运行,监听网络端口,一旦有用户请求,就会开启一个服务进程来响应该用户,同时自己继续监听服务端口,使以后用户也能立即得到服务。 网络聊天是网络编程经典应用之一,编写网络聊天软件对于学习网络编程无疑有着很大帮助。本软件意在为同一局域网用户间提供便利局域网服务,局域网用户能够经过此聊天软件在各终端相互发送聊天信息,同时能够快速传送文件,方便局域网用户间快速有效通信。 工作量: 1. 程序总体整体框架界面设计 2. 用户登录模块设计 3. 用户列表模块设计 4. 文本聊天模块设计 5. 用户端及服务器端程序整合 工作计划安排: 2月5日至6日:查阅资料、需求分析、设计程序整体框架功效及界面 2月7日至10日:程序代码编写 2月11日至13日:程序整合、撰写汇报 一、引言 本文围绕Java编程语言在网络编程方面具体应用,叙述了使用面向对象方法,对计算器程序进行需求分析、概要设计、具体设计,最终使用Java编程实现全过程。在编程我们使用java语言,是现在比较流行编程语言。在当今这个网络时代,java语言在网络编程方面优势使得网络编程有了愈加好选择。Java语言最大特点是含有跨平台性,使其不受平台不一样影响,得到了广泛应用。 二、需求分析 2.1 开发背景: 在网络越来越发达今天,大家对网络依靠越来越多,越来越离不开网络,由此而产生聊天工具越来越多,网络聊天时一类聊天系统发展日新月异,所以产生了制作一个局域网网络聊天工具;而且经过制作该程序还能愈加好学习网络软件编程知识. 2.2 功效要求: i. 寻求服务器登录 ii. 能够实现点对点单聊 iii. 能够实现群聊 iv. 能够实现文件传输 v. 能够实现语音聊天 vi. 能动态更新在线用户列表 三、系统设计 3.1 设计思想 整个系统分为服务器和用户端,服务器端维护各个用户端信息。用户端全部信息发往服务器端,再由服务器进行消息分析处理并做出对应控制,服务器端是全部信息中心。 服务器端能够查看全部用户聊天统计,监控全部用户状态,发出用户上线、离线提醒等公告,用户端则提供接收公告功效。 本课程设计根据系统具体功效要求,首先应用Socket编程创建用户端和服务器端,每多个用户端服务器端就会相因创建一个线程,它们之间经过这个连接来实现数据通信;然后在用户端设置一个监听器,用于监听服务器发来消息。并依据消息做出不一样动作。 3.2系统功效 该系统实现了用户之间点对点单人聊天,在线用户之间群聊。为了加强之间信息交流,还实现了用户之间文件传输、语音聊天。在用户端和服务器端全部能够查看历史消息、保留消息、清空消息。为了监控用户之间状态,服务器还能够实现踢掉用户功效,同时用户时间文件传输信息全部会在服务器上显示。 3.3系统架构 1)选择传输控制协议TCP,使用JavaSocket编程机制,分别建立用户端和服务器端、语音传输使用是UDP控制协议; 2)分别设计用户端和服务器端界面,并使用Java应用程序用户界面开发工具包Swing进行窗体界面布局,和实现部分窗口事件对应。 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地址等信息,再从每一项信息对应列表里删除该用户信息,最终关闭该用户socket,同时刷新服务器端和各个用户端用户列表显示。 ⑥在服务其中,需要同时处理多个用户端请求,所以此处用到了多线程处理机制。在服务器程序里创建单个Server Socket,并调用accept()来等候一个新连接,一旦accept()返回,就取得结果取得socket,并用它新建一个线程,令其只为那个特定用户端服务,然后再调用accept(),等候下一次新连接请求。 4.1.2 界面设计 该段功效由ServerFrame.java文件中ServerFrame类实现,具体实现过程以下: 窗口布局:服务器端窗口使用了BorderLayout事务管理器,把整个容器分成了五个区域:North、South、East、West和Center,每个区域放置一个面板,每个面板又分别使用不一样事务管理器放置其它组件,如按钮、标签、文本框等,各个组将组成了一个完整服务器端界面。 ① 事件处理:经过Java授权事件模型,针对组件send、Button1~Button8,经过addXXXListener(关键利用了addActionListener)方法注册监听器,而且实现ActionListener接口中actionPerformed方法,这么,当组件触发了对应类型事件后,此事件就会被传送给已注册监听器,事件监听器负责处理事件。至此,实现了窗口对以下多个事件响应:发送消息、保留消息、清空消息、查看历史消息、开启服务、关闭服务、断开连接、修改昵称。 五、运行结果 5.1 用户端登陆 5.2 服务器实现其管理功效 ①向全部用户端发送消息 ③强制修改某个用户端昵称 5.3 用户端群聊 5.4 用户端和用户端间实现“私聊” 5.5 用户端和用户端之间实现文件传输功效 ①文件发送 ②件传输完成 六、结论和总结 6.1 课程设计结论 经过4.3运行结果,能够看出,该课程设计利用Java应用程序Socket编程实现了以下功效:使用Java多线程处理机制建立两个套接字分别作为服务器端和用户端。 在服务器端实现了向各个用户端公布系统消息,接收来自用户端多种信息并分别处理功效,能够控制用户端连接和对用户管理作用,而且能够适时检测已登录用户连接状态且刷新在线用户列表,更能够解析用户端和服务器端消息交互并做出对应处理。 在用户端实现了向服务器端公布消息,而且对来自服务器消息做出对应响应,能够连接到特定服务器,设置自己昵称,而且能够监听服务器端发送过来消息并做出对应响应,愈加能够和其它用户进行广播或私聊,和实现文件传输,语音聊天等功效。 由此,可见,此次课程设计完成了最初设计要求,即实现了类似P2PQQ聊天系统,有对应用户端和服务器端;服务器端能够统计目前在线用户列表,把用户列表发送给每一个在线用户,并实时刷新;任何一个用户全部能够和任意其它用户进行交互,即从在线用户列表中选择一个或一组其它用户经过服务器转发相互进行信息交互和文件交互。 6.2 课程设计总结和体会 这个程序代码并不多,也不复杂,但程序编写中用到了JAVA中Swing组件,面板容器,事件处理,线程创建、同时,输入输出处理,内部类,异常处理,和网络通信知识,所以我还是很有收获。 在这次课程设计中,我也用到了Socket 类和ServerSocket类,明白了它们是Java实现Socket通信关键工具。创建 ServerSocket对象就创建了一个监听服务,创建一个Socket对象就建立了一个Client和Srever间连接。明白了Java语言网络编程可靠性,平台无关性。 总而言之经过此次试验,掌握了使用Java语言进行面向对象设计基础方法,提升利用面向对象知识处理实际问题能力。提升面向对象程序设计能力。 七、参考文件 [1] Bruce Eckel.Java编程思想[M].北京:电子工业出版社, [2] Cay S Horstmann,Gary Cornell.Java2关键技术[M].北京:机械工业出版社, [3] 陈刚.Eclipse从入门到精通[M].北京:清华大学出版社, [4] 王森.快易通Java程序设计[M].北京:北京大学出版社, [5] 叶至军.由浅入深——Java2自学手册[M].北京:人民邮电出版社, [6] 王森.Java语言程序设计[M].北京:清华大学出版社, [7] Art Taylor,Randy Layman,Brian Buege.J2EE Java黑客大曝光:开发安全Java应用程序北京:清华大学出版社,- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 专业课程 设计方案 报告
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文