毕业论文(设计)题目基于JAVA的网络即时通讯软件的设计和实现学生姓名学号院系计算机与软件学院专业软件工程指导教师二O一二年五月二十五日声明本人郑重声明:1、持以“求实、创新”的科学精神从事研究工作。2、本论文是我个人在导师指导下进行的研究工作和取得的研究成果。3、本论文中除引文外,所有实验、数据和有关材料均是真实的。4、本论文中除引文和致谢的内容外,没有抄袭其他人或其他机构已经发表或撰写过的研究成果。5、其他同志对本研究所做的贡献均已在论文中作了声明并表示了谢意。作者签名:日期:I目录1绪论..........................................................11.1即时通讯系统产生的背景......................................11.2即时通讯系统的现状和发展....................................11.3开发即时通讯系统的意义......................................22相关技术......................................................22.1JAVA语言...................................................22.2TCP/IP协议................................................32.3Socket通信................................................33系统需求分析..................................................43.1项目设计的需求描述..........................................43.2项目设计的系统用例图........................................53.3user注册活动图.............................................63.4user登录活动图.............................................63.5user好友添加时序图.........................................73.6user聊天时序图.............................................73.7user语音聊天时序图.........................................84系统数据库设计................................................94.1用户和客户端的关系..........................................94.2用户和登录记录的关系........................................94.3用户和聊天记录的关系.......................................104.4数据库中表格的设计.........................................10II5详细设计.....................................................125.1系统总体流程图.............................................125.2系统客户端流程图..........................................126系统实现.....................................................136.1编写服务器端程序...........................................136.1.1问题陈述.................................................136.1.2后台数据库设计...........................................136.1.3用户注册.................................................146.1.4用户登陆.................................................166.1.5用户退出.................................................186.1.6接收用户聊天信息.........................................196.2客户端程序编写.............................................216.2.1用户注册.................................................216.2.2用户登录.................................................226.3聊天室实现.................................................236.3.1用户发送信息.............................................246.3.2保存聊天记录.............................................256.3.3显示系统时间.............................................266.3.4屏蔽聊天信息.............................................286.3.5退出聊天系统.............................................296.3.6出现异常信息.............................................317结语.........................................................311基于JAVA的网络即时通讯软件的设计和实现郝金南京信息工程大学计算机与软件学院,南京210044摘要:本论文用Java语言编写的一个聊天系统。该系统是基于Java平台,系统采用面向对象技术和面向对象的设计原则。系统采用C/S结构,客户端和客户端、客户端和服务器端通过Socket发送消息。使用Java语言编写,使用Eclipse开发工具。服务器端的设计和实施过程中,使用多线程技术,它可以在一个程序中同时运行多个不同的线程,执行不同的任务,大大提高服务器资源的利用率。数据库管理系统用SQLServer2005完成并通过JDBC-ODBC桥访问数据库。聊天系统将完成多人互相聊天、添加、删除好友、新用户注册、收发邮件、文件传输和语音视频聊天。关键词:网络,即时通信,C/S,SQL2005;1绪论1.1即时通讯系统产生的背景电子信息技术飞速发展,它融合了计算机、通信、信息和信号处理技术,使得信息飞速发展已成为一种必然趋势。各种信息化系统已成为一个国家基础设施,电子商务、电子政务、电子金地、科学研究、通信、交通和网络教育等十分重要的领域都因此而有了非常大的发展。因此,推进各领域高速发展的必要前提是信息化建设的发展。为实现其投资效益的最大化,必须加快信息化建设的发展步伐,信息化工程的实施必须立竿见影。所以为了将实施信息化工程的风险降至最低,我们需要一套或者多套稳定应用、功能贴切、易学易用、快速实施的信息化解决方案,能确保其关键业务和关键管理需求的优先解决,并能提供足够的扩展性来适应其不断增长的需要。但是传统业务的各个系统是独立设计的,支撑系统也是以满足生产为目的,而如果还是完全按照传统的思路进行各个系统的信息化建设,那么即使系统建成,也会有较大发展,但这种发展也只是各自单独的发展,并没有实信息化时代信息的快速传递和交换形成的互促发展的特点。这显然不符合我们希望信息资源的集成共享从而加快高度的自动化、智能化的信息化建设的初衷。所以,我们就需要变化视角,通过新的角度设计出新的技术发展方案.,重新构建信息化建设和相关产业模式,才能达到实现便捷、多赢的目的。即时通讯系统应运而生。1.2即时通讯系统的现状和发展即时通讯系统是基于Internet网络及其它有线、无线网络的一种非常流行的实时通信方式,是一种非常便捷的网络通讯技术,它用互联网通过通信系统建立起网络虚拟环境,通过计算机键盘或无线设备在网络上进行实时交换,成为一种提供公共通讯、商务通讯及商务合作的新媒介,也弥补了传统通讯形2式的不足,尤其是电子邮件及语音通信方面。随着即时通信普及,全球即时通信用户的数量也不断增长。微软公司的MSN、0ICQ和雅虎公司的雅虎通,腾迅公司QQ,网易公司的网易泡泡等通信系统都是家喻户晓的。除了最基本的单纯的文本交流,即时通信业务增加了视频、音频交流等多种宽带应用元素,如提供视频、语音通信服务、交流共享、短信收发、数据传输等服务项目。即时通信软件的第二次发展浪潮来临----基于PgP技术的多媒体和基于IP技术的通信方。即时通信业务的承载设备也将趋向于多元化。用户可以通过手机、个人计算机、PDA等工具使用即时通信,宽带电话、网络电话业务也逐渐在即时通信的软件上实现功能。1.3开发即时通讯系统的意义即时通信系统的3大优势:1.功能的多样性。如提供视频、交流共享、语音通信服务、短信收发、数据传输等服务项目,同时也注重了安全性、健壮性。2.通信的即时性和高效性。即时通信系统的速度快,不管接收方的计算机处理什么样的业务,发送的消息都能很快的通知众多的用户,使通信更加即时有效。3.功能上较强的延伸性。例如,有些即时通信软件可以用无线接入设备实现无线即时通信、直接访问公司的数据库、召集网上会议、多种语言的互译等等。即时通信软件是应用软件的一个重要的分支,构造的成本低、实时性好、网上交流平台便捷的特点决定了它的普及性,使其成为了在互联网上和他人联系的重要方式,可以加强信息沟通,推动政府机构、大型事业单位信息化的建设!因此,开发及时通讯软件也就具有了重要的意义!2相关技术2.1JAVA语言Java是一种简单、多线程、安全、容易适用、可移置、面向对象、高性能的语言。它具有如下特点:1.面向对象。面向对象技术一次革新,它可以提高模块化程度和重复适用率,缩短软件开发时间,减低开发成本。2.安全性。Java提供了许多安全机制,是能用在网路和分布环境下的程序设计语言。3.多线程。Java具备内建的多线程功能,使各线程并发、独立执行,提高系统的运行效率。4.平台独立。平台独立是指程序不受操作平台限制,可以应用于各种平台。Java源程序经过编译后能够生成字节码文件,字节码和具体的计算机无关。计算机安装能解释执行字节码的JVM,就能执行字节码文件,实现了Java的平台独立性。5.执行效率。字节码要经过JVM解释成机器码才能执行,所以速度较慢。32.2TCP/IP协议TCP协议是网络通信的基石。Java专门提供了Socket的类库,抽象出TCP协议通信中的常用方法:TCP协议与三次握手:(1)客户端,首先发送TCP请求,客户端是服务(如数据查询服务)的请求者。(2)服务器,接收到客户端的请求后,服务器向客户端提供服务。服务器是服务的执行者,返回服务执行的结果给向客户端。首先客户端发送一个数据包SYN。如果服务器收到SYN,它会发回一个数据包SYN+ACK。客户端为了表示收到SYN+ACK信息,向服务器发送一个最终确认信息ACK。SYN,SYN