论文无忧网提供:计算机毕业论文范文|计算机毕业设计|计算机毕业论文
栏目导航 ASP Java Web .NET VB6.0 JAVA VC VF DELPHI PB 计算机网络 计算机科学与技术 PHP 安卓APP 其他 C# 代写论文
当前位置: > 计算机 > JAVA >

JAVA即时通讯工具的设计与开发

目  录

1  引言... 1 内容来自论文无忧网 www.paper51.com

1.1 项目开发背景... 1

copyright paper51.com

1.1.1 项目背景... 1

copyright paper51.com

1.1.2 技术背景... 1

内容来自www.paper51.com

1.2 该系统设计的意义... 2

copyright paper51.com

2相关理论及基础技术与开发平台... 2

copyright paper51.com

2.1 即时通讯应用工作原理分析... 2 http://www.paper51.com

2.2所用技术... 3

http://www.paper51.com

2.3工具及开发平台... 4 内容来自论文无忧网 www.paper51.com

2.4 系统配置要求... 5 内容来自论文无忧网 www.paper51.com

3系统体系结构的设计... 5 http://www.paper51.com

3.1 需求描述... 5 内容来自www.paper51.com

3.2系统架构设计... 5 内容来自论文无忧网 www.paper51.com

3.3 系统的总体功能设计... 7

内容来自www.paper51.com

3.3.1总体功能设计... 7 内容来自www.paper51.com

3.3.2注册模块设计... 7

内容来自www.paper51.com

3.3.3 登录模块设计... 9

copyright paper51.com

3.3.4用户间交互模块设计... 11

http://www.paper51.com

4系统实现... 13

http://www.paper51.com

4.1网络通讯编码实现... 13

http://www.paper51.com

4.1.1聊天客户端部分代码... 13

内容来自www.paper51.com

4.1.2服务器端监听与转发消息代码... 14

copyright paper51.com

4.1.3服务端单线程上线处理代码... 15

http://www.paper51.com

4.2 系统运行的效果图... 17 内容来自www.paper51.com

4.2.1 登录界面... 17

内容来自论文无忧网 www.paper51.com

4.2.2 主界面... 17

copyright paper51.com

4.2.3 好友聊天界面... 18 http://www.paper51.com

5 系统测试与运行... 19 copyright paper51.com

结   论... 21 内容来自论文无忧网 www.paper51.com

参考文献... 21

paper51.com

致   谢... 22

内容来自www.paper51.com

声   明... 1 内容来自论文无忧网 www.paper51.com

内容来自论文无忧网 www.paper51.com

  3.3 系统的总体功能设计

http://www.paper51.com

3.3.1总体功能设计 http://www.paper51.com

根据上述需求的描述,对该系统按照功能进行了模块的细化,主要包括注册登录、好友聊天、好友组管理、群聊天4个模块,还有很多其它小模块,这4个模块是实现该系统的核心模块,模块之间的耦合程度非常低。下图是上述的4个重要模块的用例交互图。

内容来自www.paper51.com

内容来自www.paper51.com

图4 总功能用例图

内容来自论文无忧网 www.paper51.com

3.3.2 登录模块设计

内容来自www.paper51.com

该模块主要给注册成功的用户提供一个登录界面,用户根据自己注册的帐号信息可以与服务器交互,如果提供的信息通过服务器的验证便可以成功的登录系统,成功登录系统之后,可以进行一些操作,比如和好友聊天等,使用该模块之前必须安装一个客户端。登录模块只是一个简单的界面,主要填写用户名、密码之类的信息,登录成功后的主界面包含了系统的大部分功能,比如添加和删除好友、添加和删除好友分组、和朋友聊天等功能。下图是登录模块的用例图。 copyright paper51.com

内容来自www.paper51.com

图8 登录用例图 内容来自www.paper51.com

                                 

copyright paper51.com

下边的登录模块的活动图,主要是对用户提供的用户名和密码提供验证。

http://www.paper51.com

内容来自论文无忧网 www.paper51.com

图9 登录活动图 内容来自www.paper51.com

下边是用户之间交互信息的时序图,主要包括从用户登录到通过验证然后进行信息的发送,给好友发送信息包含两种情况,第一,如果好友在线的话消息直接通过服务器中转发送给好友,如果对应的好友不在线,则讲发送的信息保存到数据库中,当该好友上线的时候从数据库中读出相应的信息进行发送。

内容来自www.paper51.com

内容来自论文无忧网 www.paper51.com

图10 用户信息交互图

内容来自论文无忧网 www.paper51.com

3.3.4用户间交互模块设计 http://www.paper51.com

该模块主要实现已用户之间的信息交流,用户交流的前提是先要添加好友,可以通过查找功能进行好友的查找,找到要添加的好友后,通过发送好友申请消息来添加好友,当对方通过添加好友的验证消息后,便可以成功的添加好友。只有成功的添加好友之后,才可以进行用户之间的信息的相互交互。下边是用户交互的用例图。 copyright paper51.com

http://www.paper51.com

图11 用户交互用例图 copyright paper51.com

用户之间聊天的信息主要通过聊天服务器进行中转,用户之间聊天内容主要存储在客户端的一些文件中,可以通过查看聊天功能来进行对这些聊天信息的读取。下图是用户交互的活动图:

paper51.com

copyright paper51.com

N 内容来自www.paper51.com

Y

内容来自www.paper51.com

图12 用户交互活动图 内容来自论文无忧网 www.paper51.com

下边是好友添加的时序图 内容来自论文无忧网 www.paper51.com

paper51.com

图13 好友添加时序图

http://www.paper51.com

4系统实现4.1网络通讯编码实现 http://www.paper51.com

4.1.1聊天客户端部分代码 内容来自www.paper51.com

下边是聊天客户端的核心代码,它用来判定消息的来源以及针对该消息所进行的相应的操作。

http://www.paper51.com

for(int i=0;i<MyPersonTree.alist.size();i++)    //判断是哪个好友发来的信息

http://www.paper51.com

 {

copyright paper51.com

               p=(Person)MyPersonTree.alist.get(i); 内容来自www.paper51.com

              if(p.getID().equals(hisJICQ)) copyright paper51.com

                                       break; 内容来自论文无忧网 www.paper51.com

                                     elsep=null; 内容来自论文无忧网 www.paper51.com

                              }

copyright paper51.com

                 if(p!=null)                                 //队列中有该好友 http://www.paper51.com

                 {

copyright paper51.com

                 JICQChatFrame jchatExist=null; 内容来自www.paper51.com

                  intisExistFrame=0;//判定聊天窗口是否已经打开 http://www.paper51.com

                                 for(inti=0;i<MyPersonTree.vector.size();i++)  //遍历向量 内容来自论文无忧网 www.paper51.com

                                        { copyright paper51.com

                                              jchatExist=(JICQChatFrame)MyPersonTree.vector.get(i); http://www.paper51.com

                                                      if(jchatExist.JICQ.equals(hisJICQ))

http://www.paper51.com

                                                      { 内容来自www.paper51.com

                                                             isExistFrame=1;//聊天窗口已经打开

http://www.paper51.com

                                                             break;   

paper51.com

                                                      } 内容来自论文无忧网 www.paper51.com

                                               } 内容来自www.paper51.com

                                        if(isExistFrame==0)//聊天窗口没有打开,新建一个窗口

http://www.paper51.com

                                               { 内容来自论文无忧网 www.paper51.com

                                               JICQChatFramejchat=new JICQChatFrame(p,this); copyright paper51.com

                                                      MyPersonTree.vector.addElement(jchat); copyright paper51.com

                                                      jchat.setMessage(headmsg,msg);

内容来自论文无忧网 www.paper51.com

                                               }

paper51.com

                                               else

copyright paper51.com

                                               {//在聊天窗口中显示该信息 http://www.paper51.com

                                                      jchatExist.setMessage(headmsg,msg);

http://www.paper51.com

                                                }} else

http://www.paper51.com

{ 内容来自论文无忧网 www.paper51.com

                              JICQChatFramejchatExist=null; paper51.com

                              intisExistFrame=0;

paper51.com

                                               for(inti=0;i<MyPersonTree.UnKonwVector.size();i++)                     //陌生人的信息

http://www.paper51.com

                                               {

http://www.paper51.com

                                      jchatExist=(JICQChatFrame)MyPersonTree.UnKonwVector.get(i); http://www.paper51.com

                                               if(jchatExist.JICQ.equals(hisJICQ))

内容来自论文无忧网 www.paper51.com

                                                      { 内容来自www.paper51.com

                                                             isExistFrame=1;

copyright paper51.com

                                                             break;    内容来自论文无忧网 www.paper51.com

                                                      } paper51.com

                                               } 内容来自www.paper51.com

                       }

内容来自www.paper51.com

------分隔线----------------------------
联系方式