版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1/1/32本科生毕业论文(设计)论文(设计)题目:J 即时通讯系统的设计与实学 院: 电子信息工程学院专 业: 网络工程J 即时通讯系统的设计与实现[摘要]InternetJavaC/S[关键词]即时通讯系统;C/S模式;TCP;UDPreal-timecommunicationsystembasedonapplication.Thesystemreal-timecommunicationsystembasedonapplication.Thesystemimplementsuserregistration,userlogin,groupadministration,friendsmanage,queryuser,instantmessaging,viewthechathistory.Userregistrationisthroughthesystemtoaddnewusers;userloginusedtoauthenticatetheuser'sinformationislegitimate;groupmanagementfunctionsmainlyformanagementofgroups,suchasaddingagroup,deletegroup,etc.;friendsmanagementfunctionsmainlyforfriendsmanagement,suchasaddingfriends,removefriends,etc.;querytheisthequerytoallregistereduserstoaddasfriendstocommunicate;userstoinstantmessagingtobecomefriendsofthetwosidescanexchangereal-timeonline;viewchathistorywithagoodsavefriendsofthecommunicationofallrecords.Keywords:Instantmessagingsystem;C/Smode;TCP;UDPPAGEPAGE2/32目录445562777778889999931010101313131414151515416161617175181820分组管理模块错误!未定义书签。添加分组错误!未定义书签。删除分组错误!未定义书签。2222252526聊天记录模块628282828282829296.2.32931致错误!未定义书签。PAGEPAGE4/32绪论SocketSocket于编程实现等优点。项目背景陌生人的沟通突破环境极限,使自我与外界的沟通突破心理极限……聊天室、论坛变为以MSNOICQ(199921.62005500乎覆盖所有中国网民。2004电子,成为最流行的互联网通讯工具国外研究现状即时通讯软件几乎是每一个上网用户都必备的联络工具即时通讯软件除了能够让您迅速地在网上找到自己的朋友和工作伙伴还可以实时交谈和传递信息,而且,现在不少即时通讯软件还集成了文件共享、语音聊天、网络会议等能截止到目前全球约有近3亿多人使用即时通讯软件进行交流正因为即时通讯软件拥有数以亿计的用户和迅速增长的市场所以各个公司都盯上了中国这个潜在的最大市场,一时间,即时通讯市场硝烟四起。除了腾讯 和国外的几款著名即时通讯软件纷纷推出新版本网易也推出了一种新的即时通讯软件——网易泡泡。朗玛公司也推出了名为UC的通讯工具。19961115MirabilisLtd.发表了一个题为《E.TSURFHOME:MIRABILISLTD.PROVIDESNEWSOLUTIONSFORPEER-TO-PEERINTERNETCOMMUNICATIONSICQ(ISeekBetaInternet时通讯系统(InstantMessageSystem)Internet3(WEB,子和即时通讯)。在国,19992OICQ99betabuild0210,开通腾讯即时通讯服务。20005102001210020044600MessagingService,SMS)UC200112UC;UC307000J的即时通讯系统作为我的毕业设计。预期目标和经济效益即时通讯简称IM(InstantMessaging,它是一种面向终端使用者的网络实时沟通。户服务等为一体的综合化信息平台。的经济效益源源不断,相当乐观,有着很广阔的发展前景。课题简要介绍也充分考虑到设计者自身的条件与现有技术成熟程度的基础上做出的一款适合大多数人使用的即时通讯软件。产品定位:主要功能有:用户注册用户登陆分组管理好友管理即时通讯查询用户实现技术:MyEclipse7.1SQLServer2000数据库系统创新点()操作简单、方便,快捷、准确、数据存储安全可靠,针对自身特点去除了不必要的冗余东西,使系统负担最小,速度最快;采用更高的安全机制,使数据更加安全,用户可以放心的使用。需求分析功能需求用户管理2-1图2-1用户管理用例图分组管理2-2图2-2分组管理用例图好友管理2-37/32图2-3好友管理用例图即时通讯即时通讯模块用户可以与在线的好友进行聊天,用户首先查看好友是否在2-4图2-4即时通讯用例图通讯模型的特点适用性InternetJInternetInternetICQ(Iseekyou)GSM(GlobalSystemforMobileCommunications,为全球移动通讯系统)标准中的SMS,也可以是NTT(日本最大的携带公司,NTTNewTechnologyTelescopeDoCoMoDoCommunicationOvertheMobileNetwork)(information-mode,一种移动服务)服务。8/32扩展性甚至其他混合结构。例如,腾讯的通讯服务系统使用的是基于中央服务器的Client/Server—服务器结构。可行性研究技术可行性分析项目开发过程中遇到难以克服的技术问题,该怎么办。图书更增加了我们解决技术问题的信心。软件的质量如何。差错而造成用户利益损失,那么软件开发在某种意义上说也就失败了。知的结果,所以在机房的不同电脑上运行软件达到测试目的。不确定性分析虑在的。候做足这方面的准备,不让那种情况发生。分析结论MyEclipseSQLServer2000数据库进行系统的开发。9/32运行环境操作系统:windows2000serverwindows2003ServerXPSp3数据库:SQLServer2000中文个人版开发工具:MyEclipse7.1硬件配置:CPU1.7GHz以上,存512MB以上概要设计框架设计3-1(此图重画,TCPUDP)图3-1系统总体框架图拓扑结构系统的拓扑结构如图3-2所示。10/32PAGEPAGE11/32C1S3C2C1S3C2S1S2C3C1S3C2S1S2C3客户端—服务器星型结构服务器—服务器对等结构客户端—客户机对等结构客户端—服务器星型结构服务器—服务器对等结构客户端—客户机对等结构模式二客户端—服务器星型结构服务器—服务器对等结构模式一客户端—服务器星型结构服务器—服务器对等结构模式一C客户端S客户端—客户端连接
客户端—服务器连接服务器—服务器连接图3-2系统的拓扑结构图图3-2系统的拓扑结构图中转完成通讯)。模式一是一种非常成熟的模式,大多数TCP/IP应用系统,例如SMTP服务DNS服务、WWW服务等都是使用这种模式。模式二对于模式一是一个技术上的修正虽然这个修正带来了新的问题但是其实用性是不可质疑的正是实用模式二作为服务模式。J 的服务是由服务器构成的;J 中每个实体都由一个寄主服务器管理个体必须向服务器注册注册后就有可以控制的发信者和即时收件箱发信者是独立于即时通讯服务外的实体而即时收信箱则存在于寄主服务器中J 的通讯系统中只有存在发送者和接收者两类实体注册后的用户必须在服务器上建立登记表,才能知道其他用户的存在,与其他用户进行交流。TCPTCPUDPTCP/IPTCP故障而不能交付,发送方会得到通知;具有流控的传输;双工的传输,单个TCPUDPUDPUDPUDP知的;缺乏流控制;报文模式,当有数据交付的时候,必须制定报文边界。传输层协议的选定TCPUDP者就不能不在面向连接和无连接的传输协议间作出选择。利用面向连接的UDP知识。TCPsyn(syn=jSYN_SENDsynSY(ack=j+1,同时自己也发送SYNsyn=k,即SYN+ACKSYN_RECVSYN+ACKACK(ack=k+1),ESTABLISHEDTCPUDPUDPTCPTCP只可惜他需要建立和释放连接。TCP字、缓存空间、TCP连接)从而中止运行。功能设计客户端系统功能设计,如图3-3所示。客户端用用用用分好查即聊户户组友询时天注登管管用通记册录理理户讯录服务器登录服务查找好友在线服务端口分配图3-3系统功能设计图用户注册模块3-4(重画图3-4,3-5,3-6,3-7,3-8,3-9,4-1,4-2,4-3,方框里的字体要清楚)图3-4用户注册流程图用户登录模块用户需要正确填写自己的用户名、密码,如果验证成功,则可以进入到J即时通讯系统主面板,与在线好友进行即时通讯。用户登录如图3-5所示。图3-5用户登录流程图分组管理模块3-6图3-6分组管理流程图好友管理模块好友管理模块包括对好友的添加与删除。添加好友过程中,好友不能为空,3-714/32图3-7好友管理流程图查询用户模块3-8图3-8查询用户流程图即时通讯模块线好友进行即时通讯,并且当交流完毕时自动保存聊天记录。即时通讯如图所示。图3-9即时通讯流程图聊天记录模块要信息和谈论话题等。设计原则与一般要求参照各模块的功能与具体的特点,设计的整个即时通讯系统应达到以下目的:的正常运行,其它系统的差错不会导致即时通讯系统无确运作。格保持一致,杜绝错误、异常等情况的出现。15/32以备查验,避免用户误操作而造成不必要的损失。(4)易使用性。即时通讯系统的界面与操作人员的交互性好,用Client/Server(客户端/服务器)结构。系统设计模块设计功能模块设计如表4-1所示:用户注册模块用户登录模块用户注册模块用户登录模块分组管理模块功能模块好友管理模块1.用户注册1.用户登录添加分组删除分组添加好友删除好友1.查询用户1.即时通讯1.查看聊天记录即时通讯系统关系型数据库的实现MicrosoftSQLServer2000是一个高性能的客户端/服务器结构的关系数据库管理系统RDBMS。SQLServer2000(比如在线订购录入、存货目录、记账或制造)MicrosoftWindowsNT4MicrosoftWindows2000Server上—基于IntelMicrosoftSQLServerSQLServerRDBMS(RelationalDatabaseManagement)Server2000Server2000的优点在于它能使用数据表示图或自定16/32方面的要求,包括现有的以与将来可能增加的要求。数据库分析些相应的数据。针对这些情况,我建立了以下若干表来存储相应的信息:表名:用户表,分组表,好友表等。IP、绑定端口等。分组表:包括的数据项有:分组名称、用户等。好友表:包括的数据项有:好友名称、所在分组、用户等。数据库概念设计根据前面的需求分析和概要设计规划出本系统所使用的实体对象,分别为:用户实体、分组实体、好友实体。下面将给出几个关键实体的E-R图。用户实体用户实体包括用户名、密码、真实、性别、个人签名、是否在线、登录IP、绑定端口等。其E-R图如下所示。分组实体
图4-1用户实体E-R图分组实体包括分组名称、用户等。其E-R图如下所示。好友实体
图4-2分组实体E-R图好友实体包括好友名称、所在分组,用户等。其E-R图如下所示。图4-3好友实体E-R图17/32数据库逻辑结构设计根据上面所做的总结,再参考系统的实际需要,表与逻辑结构如下图所示:users,如下所示。表4-2用户表字段名usernamepasswordnamesexsignisonlineloginIPbindport
数据类型Varchar(20)varchar(20)varchar(50)varchar(10)varchar(512)Bit(1)varchar(20)Int(4)
用户名密码个性签名是否在线登录IP绑定端口
备注主键不允许为空不允许为空不允许为空允许为空不允许为空(允许为空不允许为空(默认0)groups,如下所示。字段名数据类型字段名数据类型字段说明备注g_namevarchar(50)分组名称主键Owner_groupvarchar(50)用户主键friends,如下所示。表4-4好友表字段名数据类型字段说明备注friendvarchar(50)好友名称主键group_invarchar(50)所在分组主键owner_friendvarchar(50)用户主键系统实现注册模块如果用户名不存在,则可以使用此用户名,然后输入用户的密码、真实、性别个性签名等成功注册。注册模块如图5-1所示。18/32主要代码实现如下:
图5-1用户注册图publicintVerify(){//验证用户名是否存在Stringusername=txtUserName.getText().trim();UserItemui=newUserItem();ui.setUsername(username);ProtocalproVerifyUser=newProtocal(ProtocalNumber.VERIFYUSER2,"",ui);SendPacketsp=newSendPacket(proVerifyUser);intresult=((Integer)sp.Send()).intValue();returnresult;}publicvoidactionPerformed(ActionEvente){//用户注册uttonbtnSource=(utton)e.getSource();if(btnSource==btnOK){intres=Verify();if(res==0){regUser=newUserItem(username,password,name,sex,sign,"",false,0);ProtocalproAddUser=newProtocal(ProtocalNumber.ADDUSER,"",regUser);SendPacketsp=newSendPacket(proAddUser);19/32intresult=((Integer)sp.Send()).intValue();if(result!=0){JOptionPane.showMessageDialg(this,JOptionPane.INFORMATION_MESSAG);newfrmLogin(); }}}}}确认信息填写无误后,点击注册按钮就可注册成功登录模块都正确时进入程序主界面,才能进行日常管理工作。该模块的界面设计如图所示。图5-3登录界面如果登录身份验证成功,则进入主界面如图5-4所示:20/32图5-4主界面如果用户名或密码错误则会提示,需要重新输入。主要代码实现如下:publicvoidactionPerformed(ActionEvente){uttonbtnSource=(utton)e.getSource();if(btnSource==btnLogin){intbindport=CommonData.GetBindPort();StringloginIP=CommonData.GetLocalIP();UserItemui=newUserItem();ui.setUsername(username);ui.setPassword(password);21/32ui.setBindport(bindport);ui.setLoginIP(loginIP);ProtocalproVerifyUser=newProtocal(ProtocalNumber.VERIFYUSER,"",ui);SendPacketsp=newSendPacket(proVerifyUser);intresult=((Integer)sp.Send()).intValue();if(result!=0){JOptionPane.showMessageDialo(this,JOptionPane.INFORMATION_MESSAG);this.dispose();newFrmMain(ui.getUsername());}else{JOptionPane.showMessageDialg(this,JOptionPane.INFORMATION_MESSAG);this.txtUserName.setText("");this.txtPassword.setText("");}}}好友管理模块添加好友主要功能是添加已存在的用户为好友以便进行通讯,如图5-7所示。22/32主要实现代码如下:
图5-7添加好友界面publicintVerify(){//验证用户是否存在Stringusername=jt.getText().trim();UserItemui=newUserItem();ui.setUsername(username);ProtocalproVerifyUser=newProtocal(ProtocalNumber.VERIFYUSER2,"",ui);SendPacketsp=newSendPacket(proVerifyUser);intresult=((Integer)sp.Send()).intValue();returnresult;}publicvoidactionPerformed(ActionEvente){//添加好友if(e.getSource()==btnok){friend=(String)jt.getText().trim();if(friend.equals("")){JOptionPane.showMessageDialo(this,JOptionPane.INFORMATION_MESSAG;return;}if(friend.equals(CommonData.currUser.getUsername())){23/32PAGEPAGE24/32JOptionPane.showMessageDialg(this,JOptionPane.INFORMATION_MESSAG);jt.setText("");return;}intverify=Verify();if(verify==0){JOptionPane.INFORMATION_MESSAG);jt.setText("");return;}else{ui=newUserItem();ui.setUsername(friend);fi=newFriendItem();fi.setFriend(ui);Stringg_name=(String)choice.getSelectedItem();fi.setGroup_in(g_name);fi.setOwner_friend(CommonData.currUser.getUsername());Protocalproaddfriend=newProtocal(ProtocalNumber.ADDFRIEND,CommonData.currUser.getUsername(),fi);SendPacketsp=newSendPacket(proaddfriend);intresult=((Integer)sp.Send()).intValue();if(result==1){JOptionPane.showMessageDialog(this,"此好友已添加过!","添加好友",JOptionPane.INFORMATION_MESSAG);jt.setText("");return; }if(result==0){JOptionPane.showMessageDialog(this,"添加好友成功!","添加好友",JOptionPane.INFORMATION_MESSAG);this.dispose(); }}}}删除好友主要功能是删除相应分组下的对应好友主要实现代码如下:publicvoidactionPerformed(ActionEvente){//删除好友if(e.getSource()==btnok){try{group=choiceGroup.getSelectedItem().toString();friend=choiceFriend.getSelectedItem().toString();FriendItemfi=newFriendItem();fi.setOwner_friend(CommonData.currUser.getUsername());fi.setGroup_in(group);UserItemui=newUserItem();ui.setUsername(friend);fi.setFriend(ui);ProtocalproExit=newProtocal(ProtocalNumber.DELETEFRIEND,CommonData.currUser.getUsername(),fi);SendPacketsp=newSendPacket(proExit);intresult=((Integer)sp.Send()).intValue();if(result!=0)JOptionPane.showMessageDiaog(this,好友",JOptionPane.INFORMATION_MESSAG);dispose(); }}catch(Exceptionee)你的分组或好友为空,法删除!",删除好友", JOptionPan.INFORMATION_MESSAG); }}}查询用户模块所示。主要实现代码为:
图5-9查询用户界面publicVector<Object>Select(){//查询用户ui=newUserItem();ui.setUsername(CommonData.currUser.getUsername());ProtocalproVerifyUser=newProtocal(ProtocalNumber.SELECTUSER,CommonData.currUser.getUsername(),ui);SendPacketsp=newSendPacket(proVerifyUser);Vector<Object>vv=(Vector<Object>)sp.Send();returnvv; }即时通讯模块主要功能是在线用户之间的即时通讯,如图5-10所示。26/32主要实现代码为:
图5-10即时通讯界面publicvoidactionPerformed(ActionEvente){ //if(e.getSource()==send){try{if(jt2.getText().equals("")){JOptionPane.showMessageDiaog(this,"发送容不能为空!","J 聊天JOptionPane.INFORMATION_MESSAG);return; }UserItemui=newUserItem();ui.setUsername(uiTarget.getUsername());ProtocalproFindUser=newProtocal(ProtocalNumber.FINDUSER,"",ui);SendPacketsp=newSendPacket(proFindUser);uiTarget=(UserItem)sp.Send();byteb[]=(CommonData.currUser.getUsername()+":"+jt2.getText()).trim().getBytes();InetAddressaddress=InetAddress.getByName(uiTarget.getLoginIP());DatagramPacketdata_pack=newDatagramPacket(b,b.length,address,uiTarget.getBindport());27/32PAGEPAGE29/32D
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年钢铁行业纳入全国碳市场:核算边界与配额分配要点
- 2026年小学消防安全讲座
- 2026年钢铁建材石化化工行业零碳工厂路线图
- 2026年深地深海产业风险识别与中长期回报评估框架
- 透水混凝土施工技术要点
- 2026年网络安全举报流程培训
- 2026年水上安全规则培训
- 2026年实验室电气安全培训
- 2026年商场安全防范培训
- 昏迷患者并发症的护理措施
- 《养老护理员》-课件:协助老年人洗浴及清洁会阴部
- 中建路基挡土墙施工方案
- 2023年9月全国英语等级考试二级听力试题真题(含答案+录音原文)
- 2023年国际脓毒症和感染性休克管理指南全文
- 计算机组成原理(本全)白中英课件
- 教科版科学五年级上册《光》单元教材解读培训PPT
- 微生物发酵制药
- 2023中移铁通春季校园招聘高频考点题库(共500题含答案解析)模拟练习试卷
- 融资服务协议合同
- 如何做好医院科主任
- 危大工程管控清单
评论
0/150
提交评论