【最新版】中北大学毕业设计说明书(企业内部即时通讯系统的设计) 下载本文

总 结 ................................................... 错误!未定义书签。 参考文献 ................................................ 错误!未定义书签。 致 谢 ................................................................... 16

1 引言

1.1 课题的背景与意义

随着计算机网络的发展,人类的通信方式也发生了翻天覆地的变化。网络通信早已取代传统的纸质信件,电话网络的地位也在这个年代受到了来自计算机网络的挑战。总之,网络通信在我们的生活和企业中可以说已经必不可少,企业内部即时通讯就是其中的重要组成部分[1]。

目前,中国市场上的企业级即时通信工具主要包括:易睦网络的imo云办公室、叮当旺业通、Anychat、网络飞鸽、汇讯WiseUC、大蚂蚁Bigant、上海盈硕的蚁傲、腾讯RTX、FastMsg、263EM、IBM的Lotus Sametime、点击科技的GKE、中国移动的企业飞信、华夏易联的e-Link、网络飞鸽QuickDove等[2]。相对于个人即时通信工具而言,企业级即时通讯工具更加强调安全性、实用性、稳定性和扩展性,同时更可根据应用的实际能按需定制,随着企业信息化进程的不断演进,企业即时通讯在企业中的应用将越来越广泛。

企业内部即时通讯系统是企业员工在工作时经常要与其他同事进行协同工作和跨部门合作,全方位地利用有限资源协同完成更多工作,因此各部门同事间需要进行即时的沟通。采用JMS (Java Message Service)技术实现企业内部的即时通讯系统。使该系统为使用者提供即时消息、网络会议、文件传输、系统公告等功能,可实现使用者与各部门同事间协同办公的要求,满足企业内部进行更加高效沟通的需求,为企业提供一种公共的、可靠的内部沟通方式。

企业内部即时通讯系统的好处:

(1)提高工作效率:在与公司客户与同事沟通时能够达到提高工作效率。 (2)快速解决沟通问题。

(3)可以迅速知道对方是否在线。

(4)与邮件、移动短信结合更是威力无穷。当适合公司的即时通讯系统广泛应用于工作后,交流渠道便于扁平化管理,业务上的平等交流;因为是书面交流,有利于理清头绪,明晰表达;而且,办公室人与人之间的关系变得更加真诚和紧密。 所以纵上所述,如果企业要用即时通信,最好用专用的企业即时通讯系统,而最好不要用个人即时通讯[3-5]。

1.2 相关技术知识简介 1.2.1 基于SOCKET的网络编程

SOCKET在英文中的意思是插座,在网络编程中,其实际意义可以理解为网络通信连接的插座,通常称之为套接字。如果将网络连接的各终端类比为电话,则SOCKET即相当于电话线插座,为各终端提供或创建与其他终端通信连接的桥梁或通道。所有的终端都必须接通此“插座”来完成与其他终端的连接或通信,否则,它将独立于网络之外

[6]

由此可以知道知道,SOCKET是终端间建立连接的核心对象。那么,对于一个SOCKET

对象,它到底具备什么样的功能呢?

通常,用WINSOCK库来创建和使用SOCKET,运用WINSOCK库的基本API,就可以实现简单的数据输入和输出(即发送数据和接受数据)。在创建一个SOCKET对象后,通过指定IP地址来确定该SOCKET与哪台机器发生交流,通过指定机器端口号(一般为1024以上)确定与该机器上哪个应用程序进行交流。在确定了交流对象后,便可以使用SOCKET与对象机器上的应用程序进行数据的传输和信息的交流。在面向连接的网络通信中,还必须使用SOCKET进行连接的监听和创建,只有创建了稳定的连接后,才开始进行数据的传输[7]。

由于交互方式的不同,SOCKET也分为两种,一种是无连接的数据报形式的,一种则是面向连接的流式套接字,这也是接下来两小节要阐述的内容[8]。 1.2.2 UDP协议与TCP协议的简单介绍

UDP协议是一个简单的面向数据报的运输层协议:进程的每个输出操作都正好产生一个UDP数据报,并组装成一份待发送的IP数据报。这与面向流字符的协议不同,如TCP,应用程序产生的全体数据与真正发送的单个IP数据报可能没有什么联系[9]。UDP不提供可靠性:它把应用程序传给IP层的数据发送出去,但是并不保证它们能到达目的地,其过程可以比做投递信件,它只关心信件确实投放到信箱,至于对方是否正确、按时收到信件,UDP并不关心[10]。

尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与UDP完全不同的服务。TCP提供一种面向连接的、可靠的字节流服务[11]。面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个TCP连接。这一过程与打电话很相似,先拨号振铃,等待对方摘机说“喂”,然后才说明是谁并与

之开始对话[12]。

1.2.3 WINSOCK套接字API调用的简单流程

本论文所要讨论的即时通信系统则是通过WINSOCK库的应用来设计和实现基于TCP的CS结构的网络即时通信程序。这里,用图的方式简单的表示出对WINSOCK库提供的API函数调用过程[13]。

2 系统的相关分析与总体设计

2.1 设计目标

本系统主要是为中小型企业内部使用的带有简单人事管理功能的局域网即时通信系统,由于要存储并管理用户相关信息的数据,同时要限制普通用户对数据信息的管理权限,比较合适的设计是采用CS模式的系统架构,数据由数据库进行存储,由服务器对数据库进行直接操作,而客户端则通过对服务器发出请求得到相应的数据或者告知服务器对数据库进行何种操作[14]。 2.2 需求分析

2.2.1 功能性需求分析

本系统这实现了企业内部网络聊天工具所具备的基本功能,即注册、登录、查找好友,添加好友、更改个人资料、查看好友资料、添加删除分组、各分组之间转移好友、发送消息、接收消息、接收系统消息等,还添加了一些特色功能,如隐身,头像的变化,系统管理员可以向每个客户端发送系统消息,上线下线在好友客户端都有提示,密码丢失可以通过密码找回功能通过设置的密保问题找回密码,并可以判断密码的安全等级等。本系统实现了一个与Tencent QQ相似的友好操作界面,简单,易用,适合用户的操作习惯[15]。

谢谢海南社区支持:, IOException, InterruptedException

{

if (jt_user.getText().equals(\{

JOptionPane.showMessageDialog(null, \请输入账号后再登陆\提示\

JOptionPane.INFORMATION_MESSAGE);

}

else if(jt_user.getText().length() < 6 || jt_user.getText().length() > 20)