版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-.z毕业综合训练课题名称基于Java的聊天系统设计及实现系别计算机技术与工程专业计算机网络技术班级09计网〔1〕班姓名*超**2指导教师魏涛**蓝天学院-.z一、实习目的通过本次实习,能对公司产品、产品流程等到达熟练运用的地步,同时应该对JAVA及其应用有一个非常清晰、明了的认识。本次的实习内容主要包括:对公司产品有一个初步的认识及确定其应该包括哪些模块实现什么功能;对JAVA的根底知识和理论学习;理论联系实际对JAVAEclipse进展具体操作;学会用JAVA进展设计,JAVA初步程序设计。二、实习时间2011年11月28日至2012年2月10日三、实习地点**轩逸文化传播**四、公司简介及工作内容**轩逸文化传播**,是由数名**高校大学生自主创业而建立起来的广告公司,公司宗旨:企业宣传的荧屏,学生开展的平台。公司主要从事校园一系列广告业务,拥有**众多高校的校园广告资源,是一家由**省市政府、高校与社会共同扶持起来的大学生实体企业。刚来到轩逸文化传播**,每个人彼此都不熟悉。和我相似,很多刚来的实习生不知道该干什么。公司为了让我们有一个交流的平台,促进新、老同事间的相互沟通,决定开发一个聊天系统,便于同事间的日常工作交流。开发的聊天系统我们决定采用Java语言。由于本人在大学期间学习过Java程序的应用开发,所以被选入该系统的开发工程组。五、实习内容〔一〕基于Java的聊天系统的分析1、需求分析聊天系统不外乎两个方面,效劳器端和客户端。首先,效劳器端的任务:〔1〕效劳器端应当建立一个ServerSocket,并且不断进展侦听是否有客户端连接或者断开连接(包括判断没有响应的连接超时)。〔2〕效劳器端应当是一个信息发送中心,所有客户端的信息都传到效劳器端,由效劳器端根据要求分发信息。客户端应该完成的工作包括:〔1〕与效劳器端建立通信通道,向效劳器端发送信息。〔2〕接收来自效劳器的信息。2、分析小结相对效劳器而言,客户端的任务更加简单。通过以上的简单分析可知,解决上述四个问题,即完成了该聊天系统的核心。〔二〕开发环境工具基于JAVA聊天系统的设计主要运用JAVA与语言与Socket类结合而开发。其开发的主要环境包括:效劳器端:〔Windows平台〕首先应有java环境jdk,建议采用jdk1.5以上,另外还需配置classpath环境变量,添加Hibernate运行所需要的jar包,本系统开发工具为MyEclipse5.5;客户端:只要有java环境jdk就可以,建议jdk1.6。〔三〕基于Java聊天系统的设计与实现1、聊天系统总体设计要点聊天系统的设计跟普通设计有着许多不同之处。普通设计所考虑的因素,例如,普通需要对布局进入大量美化以及动画设计等等,而聊天室只要提供满足访客双方直接实时聊天即可。在设计聊天系统的过程中,必须要考虑以下几个设计要点:〔1〕实现思想在Internet上的聊天程序一般都是以效劳器提供效劳端连接响应,使用者通过客户端程序登录到效劳器,就可以与登录在同一效劳器上的用户交谈,这是一个面向连接的通信过程。因此,程序要在TCP/IP环境下,实现效劳器端和客户端两局部程序。〔2〕效劳器端工作流程效劳器端通过socket()系统调用创立一个Socket数组后(即设定了承受连接客户的最大数目),与指定的本地端口绑定bind(),就可以在端口进展侦听listen()。如果有客户端连接请求,则在数组中选择一个空Socket,将客户端地址赋给这个Socket。然后登录成功的客户就可以在效劳器上聊天了。〔3〕客户端工作流程客户端程序相对简单,只需要建立一个Socket与效劳器端连接,成功后通过这个Socket来发送和接收数据就可以了。2、功能模块划分聊天系统工作原理图如图1所示。图1聊天系统工作原理图3、聊天系统各功能模块〔1〕效劳器程序模块效劳器与客户间通过套接口Socket(TCP)连接。在java中使用套接口相当简单,JavaAPI为处理套接口的通信提供了一个类.Socket,使得编写网络应用程序相对容易。效劳器采用多线程以满足多用户的请求,并通过创立一个ServerSocket对象来监听来自客户的连接请求,默认端口为9527,然后无限循环调用accept()方法承受客户程序的连接。效劳器程序启动结果如图5-2所示。图2聊天效劳器的实现图效劳器端程序的代码如下:importjava.awt.*;importjava.awt.event.*;importjava.io.*;.*;importjava.util.*;importjava*.swing.*;importjava.util.*;//**聊天系统效劳器程序聊天系统效劳器注册窗口如图3所示:图3聊天效劳器注册窗口效劳器注册功能代码如下://封装登录信息classCustomerimplementsSerializable{ StringcustName; StringcustPassword;}//封装注册信息classRegister_Customere*tends{StringcustName;StringcustPassword;Stringage;Stringse*;Stringemail;}//用于发送聊天和在线用户的信息classMessageimplementsSerializable{ VectoruserOnLine; Vectorchat;}//聊天信息序列化classChatimplementsSerializable{ StringchatUser; StringchatMessage; StringchatToUser; booleanwhisper;}//退出信息序列化classE*it1implementsSerializable{Stringe*itname; }〔2〕客户端程序模块客户端通过Socket(InetAddress,port)建立与效劳器的连接。效劳器与客户都通过构造ObjectInputStream,ObjectOutputStream来建立输入输出流,然后双方通过该输入输出流来相互传递信息,一旦收到客户方的连接请求,效劳器accept()方法返回一个新建的Socket对象。客户端然后向效劳器发送消息,比方文件传输等,效劳器收到来自客户的请求后,针对不同的消息处理请求。客户端程序实现结果如图4所示。图4客户端程序实现图客户端程序的Socket工作过程如下:a、建立Socket连接:在通信开场之前由通信双方确认身份,建立一条专用的虚拟连接通道。b、数据通信:利用虚拟连接通道传送数据信息进展通道。c、关闭:通信完毕时,再将所建的虚拟连接撤除。1效劳器socket2监听1效劳器socket2监听4接收5读6写7关闭3客户端etsocket6写5读7关闭图5Socket的工作过程图客户端程序的主要代码如下:importjava*.swing.*;importjava.awt.*;importjava.awt.event.*;.*;importjava.io.*;importjava.util.*;importjava.applet.*;//*聊天系统客户端程序////设置效劳器IP地址/publicclassChatClient{publicChatClient(){}publicstaticvoidmain(Stringargs[]) { newLogin(); }}//登录信息序列化classCustomere*tendsObjectimplementsjava.io.Serializable{StringcustName;StringcustPassword;}//注册信息序列化classRegister_Customere*tendsObjectimplementsjava.io.Serializable{StringcustName;StringcustPassword;Stringage;Stringse*;Stringemail;}//用于发送聊天和在线用户的信息classMessageimplementsSerializable{ VectoruserOnLine; Vectorchat;}//聊天信息序列化classChatimplementsSerializable{ StringchatUser; StringchatMessage; StringchatToUser; booleanwhisper;}//退出信息序列化classE*itimplementsSerializable{Stringe*itname;}六、实习总结本次实习中,通过java语言实现了简单的实时聊天功能,经过细心的调试和排错解决了绝大局部的问题。鉴于初次涉及采用语言编写聊天系统,在开场阶段感觉逻辑复杂,难以控制,目前仍有一些未能解决的缺陷。通过本次实习,我学到了许多东西,也看到了自己本身存在着许多问题。当前的软件的功能日趋复杂,不学到一定的深度和广度是难以在实际工作中应付自如的。这也反映出我在学校中所学的知识存在理论与实践脱离的情况。需再加强学习,开拓视野,增强实践操作技能,为以后的工作而努力。在此次实习中,最感谢实习单位和指导教师给予我在工作和学习上帮助!使我提前感受到以后的工作内容和工作方法。通过这几个月的实习,让自己的知识更加的充分和扎实,对以后有了良好的规划。在实习期间,我学会了很多有用东西,看到了自己的缺点与开展方向,磨练了自己的心性,让自己能够在社会的困难路程中越挫越勇、再接再厉。通过实习也让我学会了如何设计一个良好的用户界面,掌握了一些设计用户界面所要注意的要点。并在实践中掌握了用户界面设计的设计方法。这对自己是一个极大的促进和提高。让我能够更好的在学业上取得进步。在未来的学习中我会更加的努力学习,并把所学习的成果全都应用到社会实践中去。最后,再次感谢实习单位同事和魏涛教师给予我在工作和学习上莫大的帮助!实习单位地址:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖北汽车工业学院科技学院《电力系统微机继电保护》2021-2022学年第一学期期末试卷
- 汽车修理厂设备租赁合同(2篇)
- 为班级宣传的活动形式
- 湖北科技学院《儿科学B》2023-2024学年第一学期期末试卷
- 减重手术麻醉后护理
- 国企聘用合同人才战略规划
- 生态修复大白施工合同
- 江苏酒店中心建设合同模板
- 护理教学查房病例讨论
- 湖北工程学院新技术学院《结构动力学》2022-2023学年第一学期期末试卷
- 《PLC技术及应用》期末试卷-A卷及答案
- 人工智能安全与隐私保护培训课件
- 上海市四校2024-2025学年高一上学期期中联考英语试卷(含答案无听力原文及音频)
- 2024年严禁体罚和变相体罚制度范文(三篇)
- 招投标管理招聘面试题及回答建议(某大型国企)2025年
- 高校实验室安全通识课学习通超星期末考试答案章节答案2024年
- 人民民主专政的本质:人民当家作主课件-2024-2025学年高中政治统编版必修三政治与法治
- 2024中国通信服务股份限公司招聘高频500题难、易错点模拟试题附带答案详解
- 精神科并发症处理
- 医废暂存处管理制度
- 专题17 生于忧患死于安乐(含答案与解析)-备战2024年中考语文之文言文对比阅读(全国版)
评论
0/150
提交评论