基于socket的即时通讯软毕业设计(论文)(编辑修改稿)内容摘要:

能。 列举如下:(1) 支持多账号。 (2) 可以同时发送同一个消息给一个人,通过输入对方信息。 (3) 可以同时发送一个消息给所有人。 (4) 即使用户不在线,也能通过服务器发送离线消息。 (5) 提供消息、聊天的历史记录,方便对信息的查看和管理。 (6) 提供查看在线的人的功能。 (7) 用户上线通知。 (8) 用户下线更新(9) 有权限的人可以发系统广播通知(10) 查看用户信息(11) 更改个人信息(12) 开机启动设置(13) 主窗口总是浮在最上端(14) 速度快,占用资源少 系统功能模块根据上述的需求分析,并针对个人所掌握的知识和自己毕业设计时间的限制,要做到面面俱到是不可能的,并考虑到作为局域网(校园网)聊天工具,终端用户数量较少,我设计的通讯软件借鉴了、聊天室等即时聊天工具,聊天信息采用服务器转发方式,只要当前在线的用户都可以接收到,当然,也实现了两人之间私聊的功能。 包括服务器程序和客户端程序,服务器包括聊天信息即时转发、系统日志记录、发送通知、以及数据库的备份、还原、初始化。 客户端具有登陆,注册,修改个人信息,聊天等功能。 系统功能需求图 这个即时通讯软件系统包括服务器端和客户端,服务器端有聊天记录、系统设置、发布通告、数据库备份还原初始化、置顶的功能,客户端要求有登陆、注册、聊天和修改查看个人信息的功能,系统功能的需求图如下: 系统功能需求图 开发方法介绍目前比较成熟的信息系统开发方法有:生命周期法、原型法、面向对象法等。 生命周期法:把一个信息系统从其提出、分析、设计和使用,直到停止使用的整个生存期视为一个生命周期。 整个生命周期划分为五个主要工作阶段:可行性分析阶段、系统分析阶段、系统设计阶段、系统实施阶段和系统运行、维护与评价阶段。 通常采用结构化系统分析和系统设计方法,自上而下分析、设计、强调开发过程的整体性和全局性;开发过程在时间上基本按阶段进行,任务明确;结合用户需求进行开发;开发周期长,维护不方便。 适用于开发需求较明确固定的信息系统。 原型法:是系统开发者在初步了解用户需求的基础上,开发出能实现系统基本功能的一个原型,再根据用户对原型使用与评价的意见,提出修改方案,修改完善原型,如此反复多次,直到得到用户满意的最终系统为止。 开发过程以用户为中心,开发周期短。 适用于开发需求不够明确或不断变化的软件。 面向对象法:以类,类的继承,聚集等概念描述客观事物以及联系。 为管理信息系统的开发提供了全新的思路,面向对象方法以对象为中心。 其特征主要有模块性,继承性和类比性,动态连接性。 其中原型法是近几年发展起来的一种开发方法,该方法从一个初始信息要求的集合出发,在发展中逐步完善信息系统。 本即时通讯软件采用的是原型法。 使用原型法开发大体有以下几个步骤:(1) 确定系统需求。 其中包括系统的应用范围、系统开发的经费估算等。 (2) 设计初始原型。 包括确定需求和开发工作模型,例如屏幕格式、功能菜单、报表格式以及对关键数据和功能的说明等。 (3) 对初始原型进行需求迭代,不断进行修正或改进,直至得到一个用户满意的原型,从而终止原型迭代过程。 (4) 如果需要,可写出系统必要成分的严格、详细的说明。 (5) 原型效果考察。 考察用户新加入的需求信息和组成成分的严格说明信息,看其对原型效果的影响,是否影响到原型的有效性,如果导致原型失败,应加以修正和改进。 原型法的生命周期提供了一种完整的、灵活的、近于动态的需求定义技术。 它综合了所有提出的必要需求,建立原型就近似于预先需求的规格说明。 对应于原型的工作模型可以进行必要的剪裁和组织,以便更接近目标系统。 它可以综合用户、领导和原型开发人员的各方需求[10]。 原型法工作流程图 长沙学院毕业设计(论文)第5章 总体设计 设计思想服务器端和客户端需要分别设计,除了主聊天界面外,还加上了登录界面,以便管理。 作为即时通讯软件系统,客户端信息全部来自于服务器,服务器端能实时掌握所有客户登录、退出、对话情况,并能实时转发、广播给相应客户。 由于服务器要和多个客户联系,所以在设计中采用了Winsock控件数组的形式,其中下标为 0 的元素作为监听控件,当有客户登录、退出或者相互间发送消息时,能正确接收并作相应处理,其余控件数组元素当有客户连接时自动装入。 客户端只需一个 Winsock控件,应具有随时连接、断开服务器的功能,也应具有对接收到的信息做出正确分析、处理的能力。 在整个系统设计过程中,对客户端和服务器端的消息到达这一事件的设计和编码是系统的关键。 关键通信技术-Winsock本系统的开发平台是VB ,采用了面向网络连接的Winsock控件。 Winsock是不可见控件,,全称为Microsoft Winsock Control,它能实现机器与机器间点对点的连接以及对话,使用时要将此控件调入工具箱。 Winsock控件可以使用两种协议:TCP协议和 UDP协议。 使用TCP协议来实现服务器 N 客户模式。 UDP可以实现点对点无服务器通讯。 TCP协议即数据传输协议,允许创建和维护与远程计算机的连接,使彼此可以进行数据传输。 利用 TCP协议通讯必须分别建立客户应用程序和服务器应用程序。 在创建客户应用程序时,必须知道服务器名或其 IP地址(RemoteHost 属性)及服务器进行侦听的端口(RemotePort属性) ,然后调用 Connect 方法。 创建服务器应用程序时 ,应设置一个侦听端口(LocalPort 属性)并调用 listen 方法。 当客户机需要连接时(connect),就会发生 ConnectionRequest 事件。 为了完成连接,可以在 ConnectionRequest 事件中调用Accept 方法。 建立连接后 ,任何一方计算机都可以发送、接收对方数据。 如果要发送数据,需调用 SendData 方法。 当接收到数据时,会发生 DataArrival 事件,调用 DataArrival 事件中的 GetData方法就可以获得对方传送的数据[11]。 Winsock控件属性:Protocol∥值为sckTCPProtocol时使用TCP/ IP协议,sckUDPProtocol使用UDP协议RemoteHost ∥准备连接远程机的 IP地址RemotePort ∥连接远程机的 IP端口号LocalPort  ∥本地机 IP端口号Winsock控件方法:Connect   ∥申请连接远程机Listen   ∥设置监听Accept    ∥建立实际连接Senddata  ∥发送数据Getdata   ∥接收数据(用文本框接收时应加上参数Vbstring)Close     ∥关闭连接Winsock控件事件:Connectionrequest ∥一方请求连接时另一方产生Connect ∥一方接受连接时另一方产生Close    ∥一方关闭连接时另一方产生DataArrival ∥一方发送数据另一方产生Error    ∥请求连接失败时产生 第6章 详细设计 数据库设计 本系统采用的Access数据库是Microsoft公司始于1994年发表的微机数据库管理系统。 决定采用ACCESS数据库保存用户的基本信息。 采用文件和数据库的方式存储所有用户登录/退出记录以及用户的聊天信息。 作为一种功能强大的MIS系统开发工具,它具有界面友好,易学易用,开发简单,接口灵活等特点,是一个典型的新一代数据管理和信息系统开发工具。 Access具有较独特的优势提供了更强大的数据组织,用户管理,查询检索、数据排序及数据打印等功能。 在一个工作组级别的网络环境中,使用Access开发的多用户数据库管理系统具有传统的XBASE数据库系统所无法比拟的客户服(Client/Server)结构和相应的数据库安全机制。 系统数据流程图数据流图(Data Flow Diagram,简称DFD)是新系统逻辑模型的主要组成部分,它可以反映出系统的主要功能、系统与外部环境见的输入输出、系统内部的处理、数据传送、数据存储等的情况。 它的绘制依据是现行系统流程图,数据流程图是管理信息系统的总体设计图[12]。 数据库逻辑结构设计根据系统的需要,设计2个数据表来存放用户信息,数据库中这两个表的名称分别为BACK和DATA。 列表的详细内容如下: 列名数据类型说明IDTEXT序号用户名TEXT聊天人员的用户名密码TEXT密码性别TEXT聊天人员性别年龄TEXT年龄个人说明TEXT个人说明列名数据类型说明IDTEXT序号用户名TEXT用户名密码TEXT密码上线时间TEXT上线时间IPTEXTIP远程端口TEXT远程端口计算机名称TEXT计算机名称 各主要窗体及核心代码介绍 密码模块为了提高软件操作安全性,进入系统前,需要进行身份验证,通过此窗口输入个人信息以验证身份。 用户登陆到界面后如果要修改密码,可以选择在设置选项或是密码服务选项里选择修改密码。 登陆界面和登陆流程图如下: 登陆流程图 数据初始化模块数据库需要初始化的功能,实现清空数据库的功能,实现的方法就是用原始的数据库文件覆盖替换现有的数据库文件。 关键程序代码所示:FileNames = Dir( amp。 \qk\*.mdb, vbNormal + vbDirectory) 39。 If FileNames = Then MsgBox 数据初始化失败, vbInformation Exit SubEnd IfDim a As LongDim str_tem As StringDim str As StringDim rs As Dim intAnswer As IntegerintAnswer = MsgBox(真的要初始化数据吗。 请确认。 , vbOKCancel + vbQuestion, 确认框)If intAnswer = vbOK ThenstrSource = amp。 \qk\strDestination = amp。 \CopyFile strSource, strDestination, FalseMsgBox 数据初始化完毕,请按“确定”返回, vbInformationEnd If界面图如下: 数据备份和还原模块数据需要定期备份,并且具有还原的功能,以保证数据的稳定性,所以数据备份还原的模块是必须有的。 实现方法是把现有的数据库文件放入备份的文件夹里,还原的时候再将其覆盖替换当前的数据库文件。 数据备份关键程序如下所示:On Error GoTo finish txtServerName = Format(Now, yyyymmddhhmm) WritePrivateProfileString DataSet, SID, txtServerName, amp。 \ I = MsgBox(您确定要备份本地数据库吗。 , vbExclamation + vbYesNo, 警告) If I vbYes Then 39。 这里点击的是“no Exit Sub Else strSource = amp。 \ strDestination = amp。 \bat\ CopyFile strSource, strDestination, False MsgBox 本地数据库已被成功备份到当前程序所在文件夹的bat子文件夹中。 , vbInformation + vbOKOnly, 系统提示 End If Exit Subfinish:MsgBox 本地数据库备份失败。 , vbOKOnly + vbInformation, 提示 数据库备份后被保存到程序锁在文件夹的BAT子文件夹中,如图所示:数据还原关键程序代码:Dim strSource, strDestination As StringDim I As IntegerDim FileNames As StringDim ServerName As StringDim Nian As StringDim Yue As StringDim Ri As StringDim Shi As StringDim Fen As StringFileNames = Dir( amp。 \bat\*.mdb, vbNormal + vbDirectory) If FileNames = Then MsgBox 找不到备份文件,请重新备份。 , vbInformation + vbOKOnly, 系统提示 Exit SubEnd IfDim a As LongDim str_tem As String str_tem = Space$(20) a = GetPrivateProfileString(DataSet, SID, , str_tem, 20, amp。 \) If a = 0 Then MsgBox 数据库文件出错,: End ServerName = Left$(str_tem, Len(Trim$(str_tem)) 1) Nian = Mid(ServerName, 1, 4) Yue = Mid(ServerName, 5, 2) Ri = Mid(ServerName, 7, 2) Shi = Mid(ServerName, 9, 2) Fen = Mid(Se。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。