基于socket的即时通讯的研究毕业设计.docx
- 文档编号:10579330
- 上传时间:2023-02-21
- 格式:DOCX
- 页数:65
- 大小:810.65KB
基于socket的即时通讯的研究毕业设计.docx
《基于socket的即时通讯的研究毕业设计.docx》由会员分享,可在线阅读,更多相关《基于socket的即时通讯的研究毕业设计.docx(65页珍藏版)》请在冰豆网上搜索。
基于socket的即时通讯的研究毕业设计
毕业论文(设计)
基于socket的即时通讯的研究
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:
所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:
日 期:
指导教师签名:
日 期:
使用授权说明
本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:
按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:
日 期:
学位论文原创性声明
本人郑重声明:
所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:
日期:
年月日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:
日期:
年月日
导师签名:
日期:
年月日
注意事项
1.设计(论文)的内容包括:
1)封面(按教务处制定的标准封面格式制作)
2)原创性声明
3)中文摘要(300字左右)、关键词
4)外文摘要、关键词
5)目次页(附件不统一编入)
6)论文主体部分:
引言(或绪论)、正文、结论
7)参考文献
8)致谢
9)附录(对论文支持必要时)
2.论文字数要求:
理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
3.附件包括:
任务书、开题报告、外文译文、译文原文(复印件)。
4.文字、图表要求:
1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写
2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。
图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画
3)毕业论文须用A4单面打印,论文50页以上的双面打印
4)图表应绘制于无格子的页面上
5)软件工程类课题应有程序清单,并提供电子文档
5.装订顺序
1)设计(论文)
2)附件:
按照任务书、开题报告、外文译文、译文原文(复印件)次序装订
指导教师评阅书
指导教师评价:
一、撰写(设计)过程
1、学生在论文(设计)过程中的治学态度、工作精神
□优□良□中□及格□不及格
2、学生掌握专业知识、技能的扎实程度
□优□良□中□及格□不及格
3、学生综合运用所学知识和专业技能分析和解决问题的能力
□优□良□中□及格□不及格
4、研究方法的科学性;技术线路的可行性;设计方案的合理性
□优□良□中□及格□不及格
5、完成毕业论文(设计)期间的出勤情况
□优□良□中□及格□不及格
二、论文(设计)质量
1、论文(设计)的整体结构是否符合撰写规范?
□优□良□中□及格□不及格
2、是否完成指定的论文(设计)任务(包括装订及附件)?
□优□良□中□及格□不及格
三、论文(设计)水平
1、论文(设计)的理论意义或对解决实际问题的指导意义
□优□良□中□及格□不及格
2、论文的观念是否有新意?
设计是否有创意?
□优□良□中□及格□不及格
3、论文(设计说明书)所体现的整体水平
□优□良□中□及格□不及格
建议成绩:
□优□良□中□及格□不及格
(在所选等级前的□内画“√”)
指导教师:
(签名)单位:
(盖章)
年月日
评阅教师评阅书
评阅教师评价:
一、论文(设计)质量
1、论文(设计)的整体结构是否符合撰写规范?
□优□良□中□及格□不及格
2、是否完成指定的论文(设计)任务(包括装订及附件)?
□优□良□中□及格□不及格
二、论文(设计)水平
1、论文(设计)的理论意义或对解决实际问题的指导意义
□优□良□中□及格□不及格
2、论文的观念是否有新意?
设计是否有创意?
□优□良□中□及格□不及格
3、论文(设计说明书)所体现的整体水平
□优□良□中□及格□不及格
建议成绩:
□优□良□中□及格□不及格
(在所选等级前的□内画“√”)
评阅教师:
(签名)单位:
(盖章)
年月日
教研室(或答辩小组)及教学系意见
教研室(或答辩小组)评价:
一、答辩过程
1、毕业论文(设计)的基本要点和见解的叙述情况
□优□良□中□及格□不及格
2、对答辩问题的反应、理解、表达情况
□优□良□中□及格□不及格
3、学生答辩过程中的精神状态
□优□良□中□及格□不及格
二、论文(设计)质量
1、论文(设计)的整体结构是否符合撰写规范?
□优□良□中□及格□不及格
2、是否完成指定的论文(设计)任务(包括装订及附件)?
□优□良□中□及格□不及格
三、论文(设计)水平
1、论文(设计)的理论意义或对解决实际问题的指导意义
□优□良□中□及格□不及格
2、论文的观念是否有新意?
设计是否有创意?
□优□良□中□及格□不及格
3、论文(设计说明书)所体现的整体水平
□优□良□中□及格□不及格
评定成绩:
□优□良□中□及格□不及格
教研室主任(或答辩小组组长):
(签名)
年月日
教学系意见:
系主任:
(签名)
年月日
毕业论文(设计)任务书
院(系):
姓名
学号
毕业届别
2011
专业
计算机科学与技术
毕业论文(设计)题目
基于socket的即时通讯研究
指导教师
学历
硕士
职称
教授
所学专业
计算机
具体要求(主要内容、基本要求、主要参考资料等):
本系统是一个基于局域网的socket连接的即时通讯的软件,使用的是TCP/IP协议,只要用户登录了本系统就可以和同一个网络下的其他客服端进行通信,本系统参考的主要资料有:
熊晓敏,刘瑛,陈惠清.基于Java的网络即时通讯系统的设计与实现[J].计算机与现代化,2005(12):
89-92,XX百科,李斌,王睿.关于java的继承性的探讨学术期刊
进度安排:
3月:
查询相关资料并提交开题报告
4月:
实现程序并完成论文初稿
5月:
完成论文
6月:
准备终期答辩
指导教师(签字):
年月日
院(系)意见:
教学院长(主任)(签字):
年月日
备注:
[摘要]近年来,随着互联网技术的不断更新普及,人们的联系方式也发生着重大的改变。
从当初的写信到现在的QQ和微信,这些无不说明着时代在进步。
现在,市面上的即时通讯软件多种多样,比如QQ、微信、米聊和陌陌等,早已经改变了人们的交流方式,使人们能够随时随地地进行交流,分享身边的新鲜事。
而我们现有所熟悉的通信方式,已经满足不了日益加快的生活节奏的要求,实时准确的沟通成为必需。
即时通讯软件作为一款加强人与人之间交流的软件应运而生,为我们的工作与生活带来了极大的方便,很大程度上提高了人们工作与学习的效率,加大了人际交往圈。
良好的用户界面,简便的操作,无不显示着这类应用的广阔市场。
各个中小型企业更是建起了自己的局域网聊天平台。
在局域网内,人们可以快速的分享文件与资料,不再需要面对面使用U盘拷贝了。
在此背景下,我开发了一款基于局域网的socket即时通讯项目,方便在此局域网内的人员沟通与交流。
本项目包括客户端与服务器端。
客户端主要包括用户的注册登录、聊天、分组、群聊,和个人信息修改等。
服务器端实现聊天信息的转发、数据库数据的修改。
其中,服务器端在设计与实现过程中,采用的是多线程技术,使用了连接池,可以在单个程序中同时运行多个不同的线程,执行不同的任务,不同的客户端登陆时就开启一个线程监听。
[关键词]socket;动态更新;即时;TCP/UDP
Abstract:
Withtheupdatingandpopularizingoftheinternettechnologycontinuallyinrecentyears,thewayofPeoplecontactingwitheachotherischangingsignificantly.Fromthepaperstotheqqandweixintoday,allthatshowtheprogressoftheera.therearemanykindsofinstantcommunicationsoftwaresonthemarket,suchasqq、weixinandsoon,theyhavealreadychangedthepeople’sCommunicationpattern,sothatpeoplecancommunicateanytimeandanywhere,sharinganythingnewaround.
However,thewaytocommunicatethatwearefamiliarnow,hasfailedtomeettheincreasinglyacceleratedpaceofliferequirements,realtimeaccuratecommunicationbecomeessential.Theinstantcommunicationsoftwareasasoftwaretoenhancetheexchangebetweenpeoplecameintobeing,whichhasbroughtgreatconveniencetoourworkandlife,greatlyimprovedtheefficiencyofpeople'sworkandlearning,andincreasedinterpersonalcircle,Gooduserinterfaceandsimpleoperation,theyareallshowthebroadmarketforthiskindofapplication.
ManySMEshasbuilttheirownLANchatplatform.IntheLAN,youcanquicklysharefilesandinformation,nolongerneedtouseUdisktocopyfacetoface.Underthisbackground,IdevelopedasocketinstantcommunicationprojectbasedontheLAN,tofacilitatepeople'scommunicationintheLAN.Theprojectincludesclientandserver.Theclientmainlyincludesuserregistrationregistry,chat,groups,groupchat,andpersonalinformationchanges,etc.Theserverachieveschatinformationforwardinganddatabasemodification.Amongthem,theserverinthedesignandimplementationprocess,Iusethemultithreadtechnology,whichcanrunmultipledifferentthreadssimultaneouslyinasingleprogram,performdifferenttasks,asdifferentclientlogin,itwillopenathreadmonitor.
Keywords:
socket;dynamicupdates;instant;TCP/UDP
1绪论
1.1本课题的研究意义及必要性
我们已经步入了互联网时代,在这个网络无所不在的今天,即时通讯通过网络无限的缩小了人与人之间的距离,整个地球也就显得越来越小,更有了地球村的说法。
比如你在福建却能与远在千里之外的人聊天,这在互联网普及之前是完全不可思议的事情。
现在只有你能连上网络不管你在哪里,只要打开这些即时通讯软件你就可以给他发消息不管他是否在线。
正如我们所知的,国内的中小型企业纷纷建起了自己的局域网既方便员工的内部交流又增加了企业内部的安全性。
在局域网内交流,不需要使用Internet网络,这样的好处是可以节省很多网络资源,又充分的利用现有的网络资源一举多得。
在公司内部的交流就可以自由的交流,分享文件极大的提高了人们的工作效率。
1.2相关领域国内外应用的现状及发展趋势
在国内做即时通讯聊天的公司有很多,据我所知的就有:
网易泡泡,通讯qq,微信,易信,还有近期网络上很火那个开源的蘑菇街的公司内部通讯TeamTalk。
本人选取了比较典型的代表腾讯qq进行了一些研究,作为这次课题的准备。
现如今国内最大的通信软件是腾讯qq,这个通讯软件占据了中国的70%以上的手机移动即通讯市场,自从1999年以来进入国内的手机移动端等就迅速的占领我国的即时通讯市场,国内的用户量始终占其榜首。
即使最近几年微信与陌陌的异军突起,但是腾讯qq还是稳坐钓鱼台每年还是保持稳定的增长,究其原因还是因为qq它不断的完善和越来越友好的用户界面。
本项目就是基于socket的TCP即时通讯项目,采用单服务器模式,使用android语言编写客服端,java语言编写服务器。
1.3java语言
1.3.1java发展史
Java发展于1995年,一开始还是一个名不经传的小语言,但是该语言的具有的特性使迅它迅速吸引了当时所有的程序员和软件公司的关注。
该语言的特点有安全性,跨平台性,面对对象还可以使用网络等特点无不使它能够让更多人接受。
那个时候互联网主要是以web平台模式发展,而java语言的推出立马就让程序员与软件公司接受,众多程序员纷纷尝试使用java语言编写自己的网络程序,并且将其发布于全世界各地。
正如java语言的跨平台性,使其立马在世界各地推广开来。
包括oracle,微软,Apple,IBM等公司都与sum公司签订合同,使用java平台语言的技术。
微软的总裁大boos还曾说过:
“Java语言是长时间以来最卓越的程序设计语言”。
正如他所意料的java语言目前已经成为了当下最盛行的网络编程言语,世界各地大大学也纷纷开设了java课程,为后来android系统的流行积累下了深厚的基础,目前流行的android系统也正是基于java语言编写的。
Java语言已经成为了世界上程序员运用最多,市场率占有量最高的语言了。
随着科技的发展,在计算机领域通常有着18个月更新一个技术就如我们的计算模式在经历过以大型机为代表的集中计算和以pc机为代表的分散计算后,现在已近步入互联网计算的时代。
互联网就是把所有的计算机组成起来形成一个网络分享我们的数据而互联网计算的最大特色就是计算机的异构,即计算机操作系统和计算机的类型都是不一样的,比如sum公司而言,据调查显示它们使用的软件是UNIX中的solaris操作系统但是使用工作站的硬件却是sparc体系,pc机的硬件是INTEL体系,操作系统是windows或者是Linux,为什么它们的软件可以通用呢?
当初相应的编程语言基本上是适用于单机系统的。
网络计算的另外一个特色就是代码可以在网络上传播,可以再各个计算机上正常的运行,无论这台计算机是什么操作系统,什么硬件设施。
这就迫切要求一种跨平台的编程语言的,java语言就应运而生。
Java语言的各种特性让它获得了巨大的成功。
我们可以想象一下,在pc机下使用windows系统下编写的程序可以直接在Unix系统上运行吗?
答案当然是不可能的了,因为程序不认识这个语言啊。
程序的执行最终是要转换成计算机硬件的机器指令来执行的。
而那些专门为某种计算机硬件与操作系统编写的程序显然是不能直接在其他的计算机上直接的,要运行也行,那么就必须要做移植工作。
这是一个做无用功的过程,而且又非常的繁琐。
所以一款可以再不同平台下运行的语言的呼声日益增高。
Java语言的各种特性也正满足了这一要求。
Java应用与C++语言之后,java是完全面对对象的[1],它吸收了C++语言的所有优点,采取了当初程序员的所熟知的c++和c语法规则,同时又摈弃了c之中的众多不影响内存的部分,可是说java的发展是在c++的基础上改造而来的。
Java编程语言当初的设计目标就是为了跨平台,所以在编写的时候采取的是解释执行的运行环境,在根据不同的平台硬件解释成不同的计算机机器指令,这样就完美的实现了程序的跨平台。
而且为了适应网络计算模式的特性,java语言还提供了动态下载机制,程序可以把自己需要的代码动态的从网络上下载到本地的服务器中执行,这个机制在这个语言之前没有一种语言能够实现这点。
1.3.1java的网络应用
在和网络通信方面,客户端和服务器的数据交换方式主要是可以分为两种情况:
一是Http通信,一是Socket通信。
它们的两者的区别在于:
http使用的是请求响应模式,即请求时建立连接,连接之后客服端发送请求服务器端才能返回请求的数据。
Socket通讯是在双方建立连接通讯通道之后直接进行数据的交换,服务器端可以主动推送数据到客服端,不需要请求才返回数据。
那么,什么是socket?
Socket连接我们可以理解成是套接字连接,它的工作原理是通过监听网络上面的一个端口号创建一个通信信道来进行数据的传输。
socket的主要特点有数据丢失率低,使用简单且易于移植。
我们可以理解Socket就是一种抽象层,应用程序可以通过这个抽象层来收放数据,因此我们可以使用Socket将程序添加到网络上面,和在同一个网络中的其他设备进行通讯。
Socket不同的实现方式是根据它底层使用不同的通信协议。
在本项目中运用的是基于TCP/IP协议的,在这个协议里socket的主要类型为流套接字和数据报套接。
我们可以理解为流套接字就是tcp协议,它将tcp作为接口协议,提供一个字节流的服务。
当然除了tcp协议还有UDP协议,即数据报协议,它的工作原理是把数据直接打包发送的,不需要建立连接只要知道目的地址就好了。
下面,我们来认识一下这两种Socket类型的基本实现模型。
图1.1TCP通信过程
图1.2UDP通信过程
1.3.2socket通信原理
(1)基于TCP协议的Socket
首先在服务器端里要先声明一个ServerSocke对象并且要指定端口号,这个端口号要是系统没有使用的,或则不能进行通信。
然后调用Serversocket的accept()方法,监听客服端发送的消息。
而accept方法在没有进行数据接收的时候是一种处于等待的状态,也就是一直监听客服端的消息在等待。
一旦客服端有数据传输过来的时候,通过inputstream对象来读取socket里面的数据进行处理和转发。
其次要在客服端创建一个socket对象,这里当然也要指定端口号,这个端口号和服务器的端口号要一样,还需要指定服务器端的ip地址(socketsocket=newscoket(ip,port)),
最后将这些要发送的数据使用outputstream发送,这样就可以使用TCP协议进行socket数据传输了。
(2)基于UDP协议的数据传输
服务器端首先创建一个DatagramSocket对象,并且指点监听的端口。
接下来创建一
个空的DatagramSocket对象用于接收数据(data,data.length)),使用DatagramSocket的receive方法接收客户端发送的数据,receive()与serversocket的accepet()类似,在没有数据进行接收的处于堵塞状态。
客户端也创建个DatagramSocket对象,并且指点监听的端口。
接下来创建一个
InetAddress对象,这个对象类似与一个网络的发送地址如下:
(InetAddressserveraddress=InetAddress.getByName("192.168.1.101")创建一个要发送的数据的字符串数据,并且创建一个DatagramPacket的对象,还要确定的是要发送的网络的ip地址和端口号,当然最后我们要发送这个数据,使用DatagramPacket的send()发送。
1.4Mysql简介
Mysql是当前的一个小型的数据库软件,它是开源的,它是由MysqlAB独立开发的并且负责维护这个数据库软件的后期支持,这里稍微提及一下MysqlAB,它是一家基于sql开发的商业软件公司,它使用了一种新的成功的商业模式来结合开源的价值来二次开发的开源公司。
1.4.1Mysql的优点
(1)Mysql的一个数据库是一个结构化数据的集合。
Mysql服务器它支持很多系统的使用,比如支持关键任务、重负载生产的系统的应用,它可以内嵌到其他大型的软件里面使用。
Mysql是一个多线程的,多用户的sql体系的数据服务器。
Mysql的数据库存储的类型可以是一个简单的表,也可以是一个图书馆的所有的数据集合、或者是一个集团的庞大的信息集合。
我们有存储数据集合的地方当然也是需要有一个能够添加、访问和管理数据集合的数据库管理软件系统。
Mysql数据库管理软件就是这样一个系统,它可以很好的支持多个用户的数据操作与访问并且每个用户都是独立的并发的进行。
(2)MySQL是一个关系数据库管理系统。
所谓的关系型数据库就是把数据都存放在不同的独立的表格里面,这样做的好处就是方便我们管理和使用数据库查询与管理,提高了数据库管理的灵活性。
(3)MySQL是开源的,对外开放的。
开源也就是
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 socket 即时通讯 研究 毕业设计