收藏 分销(赏)

课题即时通讯毕业设计方案.doc

上传人:w****g 文档编号:2601579 上传时间:2024-06-03 格式:DOC 页数:40 大小:452.54KB 下载积分:12 金币
下载 相关 举报
课题即时通讯毕业设计方案.doc_第1页
第1页 / 共40页
课题即时通讯毕业设计方案.doc_第2页
第2页 / 共40页


点击查看更多>>
资源描述
毕业设计阐明书 公司内部即时通讯系统设计 与实现 电子与计算机科学技术学院 海南社区 学生姓名: 学号: 学 院: 网络工程 专 业: 指引教师: 6月 公司内部即时通讯系统设计与实现 摘 要 随着计算机网络应用逐渐普及,网络已经成为人们掌握信息、交流信息以及管理信息必不可少重要工具。实时通信浮现给人们带来了极大便捷,同步也带来了时间和经济上节约。如今,网络即时通信已经逐渐发展成为应用于各行各业信息交流工具。 通过设计和实现一款集即时通信与人事管理于一体网络应用程序,讨论并分析在TCP/IP合同基本上设计并实现一种C/S构造即时通信系统详细过程。一方面,简介网络即时通信开发必备技术知识,涉及惯用即时通信系统客户端和服务器端通讯合同,以及即时通信系统功能设计、系统构造模式设计、数据信息设计等。另一方面,分析和设计客户端与服务器端之间通信合同,以规范系统中端与端数据传播过程。然后,对系统中最重要某些即网络传播控制模块,进行详细设计阐明以及简朴实现方案阐述。最后,描述即时通信系统整体逻辑解决流程,以及该系统在人事管理方面功能实现,以及其她某些已通过测试服务器程序测试客户端程序代码。 即时通信系统设计与实当前公司建立自己特色集信息管理和即时通信为一体内部应用软件方面具备一定应用前景。 核心词:即时通信,网络应用程序,TCP/IP,通信与办公系统 Design and Implementation of Enterprise Instant Messaging System Abstract As the widespread of web application,internet has become the indispensable tool for information acquisition,communication and management.The advent of real-time communication has brought people great convenience as well as saving time and money. Nowadays,web-based real-time communication has been developed to a communication tool for many fields. Analyzes and discuss the process of designing and implementing a real-time communication system of C/S structure based on TIP/IP protocol,through designing and implementing a network application combined the functions of instant communication tool and also a personnel management tool. First,to introduce some necessary technical knowledge and the functional designing、system structure module designing and data information designing of development of the IM system. Second,analyze and design the communication protocol between Client and Server of the system to regular the data transportation process between ports. Third,describe the designing and implementation of the most important part of the system which is the web transportation controlling module. Finally,introduce the logic processing of the whole IM system and some client programs or code which have passed the testing of server program. Designing and implementing of IM system has a definite applying prospect in the aspect of building an interior and own application which gather instant messaging and information managing. Key words:Instant Messaging,Network Application,TCP/IP,IM in Office 目 录 1 引言 1 1.1 课题背景与意义 1 1.2 有关技术知识简介 2 1.2.1 基于SOCKET网络编程 2 1.2.2 UDP合同与TCP合同简朴简介 2 1.2.3 WINSOCK套接字API调用简朴流程 3 2 系统有关分析与总体设计 4 2.1 设计目的 4 2.2 需求分析 4 2.2.1 功能性需求分析 4 2.2.2 系统用例分析 4 2.3 概要设计原则 5 2.4 系统安全与分析设计 6 2.5 数据库构造设计 7 2.6 系统开发环境和运营环境 9 2.6.1 系统开发环境 9 2.6.2 系统运营环境 9 3 系统详细设计与实现 10 3.1 系统登录界面 10 3.2 系统主界面 13 3.3 系统聊天通讯界面 15 3.4 查找朋友界面 18 3.5 个人设立界面 21 3.6 密保安全界面 23 4 系统测试 26 4.1 软件测试简介 26 4.2 软件测试过程 26 4.3 本系统所进行测试 26 总 结 27 参照文献 28 致 谢 30 1 引言 1.1 课题背景与意义 随着计算机网络发展,人类通信方式也发生了翻天覆地变化。网络通信早已取代老式纸质信件,电话网络地位也在这个年代受到了来自计算机网络挑战。总之,网络通信在咱们生活和公司中可以说已经必不可少,公司内部即时通讯就是其中重要构成某些[1]。 当前,中华人民共和国市场上公司级即时通信工具重要涉及:易睦网络imo云办公室、叮当旺业通、Anychat、网络飞鸽、汇讯WiseUC、大蚂蚁Bigant、上海盈硕蚁傲、腾讯RTX、FastMsg、263EM、IBMLotus 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库应用来设计和实现基于TCPC/S构造网络即时通信程序。这里,用图方式简朴表达出对WINSOCK库提供API函数调用过程[13]。 2 系统有关分析与总体设计 2.1 设计目的 本系统重要是为中小型公司内部使用带有简朴人事管理功能局域网即时通信系统,由于要存储并管理顾客有关信息数据,同步要限制普通顾客对数据信息管理权限,比较适当设计是采用C/S模式系统架构,数据由数据库进行存储,由服务器对数据库进行直接操作,而客户端则通过对服务器发出祈求得到相应数据或者告知服务器对数据库进行何种操作[14]。 2.2 需求分析 2.2.1 功能性需求分析 本系统这实现了公司内部网络聊天工具所具备基本功能,即注册、登录、查找朋友,添加朋友、更改个人资料、查看朋友资料、添加删除分组、各分组之间转移朋友、发送消息、接受消息、接受系统消息等,还添加了某些特色功能,如隐身,头像变化,系统管理员可以向每个客户端发送系统消息,上线下线在朋友客户端均有提示,密码丢失可以通过密码找回功能通过设立密保问题找回密码,并可以判断密码安全级别等。本系统实现了一种与Tencent QQ相似和谐操作界面,简朴,易用,适合顾客操作习惯[15]。 谢谢海南社区支持: 该系统具备了网络聊天工具所具备基本功能,系统或许存在某些未知Bug,还需要进一步改进和测试。在后来研究中,咱们还会研究安全通信合同,保障通信安全,提高系统实用性等[16]。 2.2.2 系统用例分析 (1)系统普通顾客用例分析 登录界面 查看朋友信息 更改个人信息 添加删除分组 发送信息 密保设立 接受信息 分组转移朋友 背景更改 普通顾客 图2.1 系统普通顾客用例图 查找朋友 (2)系统管理员用例分析 操作数据库 查看操作日记 发布系统公示 系统管理员 图2.2 系统管理员用例图 2.3 概要设计原则 公司内部即时通讯系统总体设计目是加强对需求分析阶段功能性需求和非功能性需求综合考虑和理解,系统建设中咱们将采用基于C/S模式构建。这些技术应用实现系统应用安全、稳定及扩展规定以及开放跨平台能力和兼容性[17]。实现了操作界面、应用逻辑、业务数据相对独立,使本系统实行更加以便、灵活、易于扩展[18]。为了进一步规划详细系统解决方案做准备,本系统在设计过程中注重考虑了如下几种特性: (1)实用性 本系统现实需求就是针对公司内部工作交流不便,挥霍时间,数据传送效率低等特点,但愿提出一种实用能满足系统功能规定和实际应用需要公司内部即时通讯系统。因此尽量选取成熟实用技术,使得整个系统有一种安全、稳定运营环境[19]。 (2)可扩展性 为使系统能有良好兼容性和可扩展性,系统在设计时充分考虑了数据库设计容量与解决能力等方面扩充与升级也许,不但充分保护了原有投资,还保证了后来系统功能升级以便[20]。 (3)安全性 系统对数据完整性和安全性具备很高规定。为了保障系统平稳正常运营,整个系统必要具备很高安全可靠性,因而,在公司内部即时通讯系统应充分运用数据库维护工具,便于数据备份、恢复,从而提高系统安全性[21]。 (4)可维护性 公司内部即时通讯系统设计要本着“简朴易用”原则,以便顾客使用。对于顾客来说,只要掌握基本计算机操作,便可完毕整个操作对于管理员来说,设计时以可维护性为主,做到故障易于排除,寻常管理操作简便[22]。 (5)完整性 系统完整性,涉及到和谐顾客界面,高效信息解决,安全可靠数据管理,以及优化网络设计[23]。 2.4 系统安全与分析设计 由于本系统安全界面中,分为:“安全概述”,“常用欺诈”,“修改密码”,“修改密保”; (1)安全概述分析设计:重要是描述飞狐系统当前帐号安全状况 if (设立密保并且密码级别为良好以上) { 安全状况良好请继续保持良好习惯 可及时完毕设立密码 } else if (设立密保并且密码级别为中档如下) { 安全状况存在隐患请定期修改密码 及时完毕设立密码 } else { 安全状况危险请立即设立密保问题 及时完毕设立密保 } (2)常用欺诈 常用集中欺诈方式:钓鱼网址,视频欺诈,中奖欺诈,冒充朋友欺诈; (3)修改密码 修改密码之前请保证设立密保;如果没有设立密保问题,请先设立密保问题,以保证该账户安全性。如果设立了密保问题,请先输入原密保问题,核对顾客身份。密保对的才可以修改,如果错误,则不能修改密码。 (4)修改密保 如果没有设立密保问题,设立密保问题。如果设立了密保问题,请先输入原密保问题,核对顾客身份。密保对的才可以修改,如果错误,则不能修改密保。 2.5 数据库构造设计 本系统数据库采用 mysql5.6,系统重要需要维护3张数据表: 名称 登录信息 描述 顾客登录时账号密码检测 来源 顾客 去处 服务器顾客表 构成 ID+密码 表2.1 登录信息表 表2.2 朋友信息表 名称 取值类型 长度 昵称 Char 8 ID Int 6到8位 密码 Char 6-16 问题NO Int 1-2 问题答案 Char 20 登录状态 Int 1 年龄 Smallint 0-99 地区 Char 20 性别 Char 2 签名 Char 100 阐明 Char 255 问题详细 Char 20 朋友ID Int 6-8 朋友类型 Int 1 朋友分组 Int 1 备注 char 10 朋友类型详细 Char 6 朋友分组详细 Char 10 日期 Date 内容 Char 255 表2.3 注册信息 名称 注册信息 描述 注册新账号 来源 顾客 去处 服务器顾客表 构成 密码+个人资料 表2.4 机位信息表 名称 聊天信息 描述 顾客聊天时发送信息 来源 顾客 去处 聊天登记表 构成 发送方IP+接受方IP+消息内容 2.6 系统开发环境和运营环境 2.6.1 系统开发环境 本系统开发平台选取考虑到如下几种方面因素:硬件环境、数据安全性以及技术支持等等。因而选取操作系统:Windows 7、Windows XP;开发工具:Eclipse;数据库:MySQL6.0;开发语言:Java。 2.6.2 系统运营环境 本系统由两某些构成:置于个顾客PC机上飞狐客户端,以及置于实验室高性能服务器上数据库服务器。 依照调研得知客户端计算机配备Pentum4级别以上,服务器PC应配备更高配备,在Windows xp环境下运营。 3 系统详细设计与实现 3.1 系统登录界面 系统顾客登录时,先打开登录页面,然后填写顾客和密码信息,并选取状态,点拟定后连接数据库,检查顾客名密码与否对的,对的则进入到系统主界面。不对的则提示输入密码有误,请重新输入。 输入密码 选取状态 输入密码与否对的 登录成功跳转到主页面 其他操作 图3.1 顾客登录流程图 Y N 输入顾客名 图3.2 软件登录界面 核心代码: private void jb_loginactionPerformed(ActionEvent e) throws UnknownHostException,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) { JOptionPane.showMessageDialog(null,"请输入对的账号,账号可以位数字或Email地址。","提示",JOptionPane.INFORMATION_MESSAGE); } else if (jp_password.getText().equals("")) { JOptionPane.showMessageDialog(null,"请输入密码后再登陆","提示",JOptionPane.INFORMATION_MESSAGE); } else { login_message lmessage = new login_message(jt_user.getText(),jp_password.getText(),0,0,0,0,jco_status.getSelectedIndex() + 1); MainInterface main = new MainInterface(lmessage); this.dispose(); } } private void jb_loginactionPerformed(KeyEvent e) throws UnknownHostException,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) { JOptionPane.showMessageDialog(null,"请输入对的账号,账号可以位数字或Email地址。","提示",JOptionPane.INFORMATION_MESSAGE); } else if (jp_password.getText().equals("")) { JOptionPane.showMessageDialog(null,"请输入密码后再登陆","提示",JOptionPane.INFORMATION_MESSAGE); } else { login_message lmessage = new login_message(jt_user.getText(),jp_password.getText(),0,0,0,0,jco_status.getSelectedIndex() + 1); MainInterface main = new MainInterface(lmessage); this.dispose(); } } 冯武宝 海南社区 3.2 系统主界面 图3.3 系统主界面 核心代码: class loginFounction extends Thread { public void run() { try { login_message lm = new login_message(lmessage.qq,lmessage.password,sys_port,main_port,alive_port,transmit_port,lmessage.status); loginClientThread loginThread = new loginClientThread(lm); loginThread.join(30000); if (loginThread.changed == 1) { sendHeartbeatThread_main_temp.start(); load(); changed = 1; } else if (loginThread.changed == 2)// 当账号和密码不匹配时 { JOptionPane.showMessageDialog(null,"您账号和密码不匹配!","提示",JOptionPane.INFORMATION_MESSAGE); System.exit(0); } else // 当登录超时状况 { JOptionPane.showMessageDialog(null,"系统繁忙,请稍后再试!","提示",JOptionPane.INFORMATION_MESSAGE); System.exit(0); } } catch (Exception e) } } class receiveMainInfoThread extends Thread { ServerSocket server; Socket client; public receiveMainInfoThread() { server = getAvailableServerSocketFunction.getServerSocket(main_port); main_port = server.getLocalPort(); } } 3.3 系统聊天通讯界面 图3.4 聊天通讯界面 核心代码: public void actionPerformed(ActionEvent e) { if (e.getActionCommand() == "表情") { Point p = MouseInfo.getPointerInfo().getLocation(); final expression ex = new expression(p.x,p.y); ex.addWindowListener(new WindowAdapter() { public void windowActivated(WindowEvent e) {} // 当窗口不活跃时候,自动关闭该窗口 public void windowDeactivated(WindowEvent e) { ex.dispose(); } }); ex.setVisible(true); } else if (e.getActionCommand() == "粗体") { if ((countBold++) % 2 == 0) { jt_recive.setUnBold(); } else { jt_recive.setBold(); } } else if (e.getActionCommand() == "斜体") { if ((countItaic++) % 2 == 0) { jt_recive.setUnItalic(); }else { jt_recive.setItalic(); } } else if (e.getActionCommand() == "颜色") { color = JColorChooser.showDialog(null,"选取颜色",Color.black);// 显示调色板 color1 = color.getRed(); color2 = color.getGreen(); color3 = color.getBlue(); jt_recive.setColor(new Color(color1,color2,color3)); jt_send.requestFocus(); } else if (e.getActionCommand() == "关闭") { MainInterface.map_portLocal.remove(anotherQQ); MainInterface.map_chatWindows.remove(anotherQQ); dispose(); } else if (e.getActionCommand() == "发送") { if (!jt_send.getText().equals("")) { text = jt_send.getText(); jt_recive.insert_text2(myname + " " + time.gettime()); transformToReceive(addSize((addColor(text)))); jt_send.setText(""); jt_recive.selectAll(); jt_recive.setCaretPosition(jt_recive.getSelectedText().length()); jt_recive.requestFocus(); jt_send.requestFocus(); } } 3.4 查找朋友界面 图3.5 查找朋友界面 核心代码: void action() { int mark = 1; if (tabNum == 0) // tabNum = 0查找联系人 { if (jr_1.isSelected()) // 查找联系人 ----- 精准查找 { sign = 1; if (jt_user.getText().equals("") && jt_nickname.getText().equals("")) { JOptionPane.showMessageDialog(null,"请至少填一种查询条件","警告",JOptionPane.WARNING_MESSAGE); mark = 0; } if (!jt_user.getText().equals("")) { user = jt_user.getText(); } else { user = null; } if (!jt_nickname.getText().equals("")) { nickname = jt_nickname.getText(); } else { nickname = null; } } else if (jr_2.isSelected()) // 查找联系人 ----- 条件查找 { sign = 2; country = item_country[jc_country.getSelectedIndex()]; if (country.equals("中华人民共和国")) { province = item_province[jc_province.getSelectedIndex()]; if (province.equals("山东")) { if (!item_city[jc_city.getSelectedIndex()].equals("---")) { city = item_city[jc_city.getSelectedIndex()]; } else { city = null; } } else if (province.equals("北京")) { if (!item_city[jc_city.getSelectedIndex()].equals("---")) { city = item_city1[jc_city.getSelectedIndex()]; } else { city = null; } } else if (province.equals("---")) { province = null; city = null; } } else if (country.equals("美国")) { if (!province.equals("---")) { province = item_province1[jc_province.getSelectedIndex()]; } else if (province.equals("---")) { province = null; city = null; } city = null; } 3.5 个人设立界面 图3.6 个人设立界面 核心代码: public information(personalInfo pinfo,Container c_temp1,MainInterface mainFrame) { this.pinfo = pinfo; c_temp_mainInterface = c_temp1; this.main_frame = mainFrame; Image image = Toolkit.getDefaultToolkit().getImage("pic//face//b.jpg"); setIconImage(image); screenSize = Toolkit.getDefaultToolkit().getScreenSize(); frameSize = this.getPreferredSize(); // 保持弹出窗口居中 this.setLocation((screenSize.width - frameSize.width) / 5,(screenSize.height - frameSize.height) / 6); Container container = getContentPane(); // 设立背景图片 jl_down = new JLabel(); // 把背景图片显示在一种标签里面 jl_down.setIcon(new ImageIcon("pic//background//2.jpg")); jl_down.setSize(600,450); c = (JPanel) container; c.add(jl_down); c.setOpaque(false); c.setLayout(null);
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服