局域网聊天程序的实现-无忧无虑毕设网_第1页
局域网聊天程序的实现-无忧无虑毕设网_第2页
局域网聊天程序的实现-无忧无虑毕设网_第3页
局域网聊天程序的实现-无忧无虑毕设网_第4页
局域网聊天程序的实现-无忧无虑毕设网_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

无忧无虑毕设网 ():毕业设计源码下载 毕业设计源码下载: 本文配套程序下载地址 : 无忧无虑毕设网 ()-大学生毕业设计站 ,免费毕业设计论文 ,无忧无虑毕设网 大学生毕业设计 ,出售各类毕业设计源码 ,论文 ,程序源码 ,网站源码 ,免费视频教程 ,我们将竭诚为您服务! 分类号: TP311.1 U D C: D10621-032-(2007)6165-0 密 级:公 开 编 号: 2003032147 成 都 信 息 工 程 学 院 学 位 论 文 局域网的聊天程序的实现 无忧无虑毕设网 ():毕业设计源码下载 毕业设计源码下载: 论文作者 姓名: 吴剑辉 申请学位专业: 网络工程 申请学位类别: 工学学士 指导教师姓名(职称): 王海春(教授) 论文提交日期: 2007 年 06 月 10 日 局域网的聊天程序的实现 摘 要 网络通讯是目前计算机用户进行交流最普遍的方式,各种各样的聊天软件也层出不穷;服务提供商也提供了越来越丰富的通讯服务功能。 本文介绍了在Windows 环境下开发局域网聊天程序 思路 和方法。系统使用流行的 Delphi7.0 开发软件,采用 Socket 技术实现网络通讯。数据库使用 Delphi 自带的 Database desktop。系统采用典型的 C/S(服务器 /客户 端 )构架 。 系统主要实现了用户注册、登录、聊天、服务器管理等功能。 本系统从需求分析、系统的设计、具体功能的实现都严格遵循了软件设计工程的思想。 关键词 : Socket; TCP/IP; C/S 无忧无虑毕设网 ():毕业设计源码下载 毕业设计源码下载: The Implementation of LAN Chatting Program Abstract Network is the most popular way of communication between computer users, therefore a lot of chatting softwares come out; on the other hand, more communication services are provided by the ISP. This paper introduces the ideas and methods of LAN chatting program which are developed on Windows. This system is developed by the Delphi7.0 software, and uses the Socket technology to implement network communications. Database using its own database desktop. Software is based on C/S architecture. The system mainly implements the functions of user registration, login, chatting, server management etc. From requirement analysis, outline design, detailed design to coding, function test, the implementation of the function in this essay absolutely follow the process of the software development. Key words: Socket; TCP/IP; C/S无忧无虑毕设网 ():毕业设计源码下载 毕业设计源码下载: 目 录 论文总页 数: 22 页 1 引 言 . 1 2 局域网聊天程序系统分析 . 1 2.1 系统理论基础 . 1 2.1.1 TCP/IP 的特点 . 1 2.1.2 客户机 /服务器模式 . 2 2.1.3 Socket 介绍 . 3 2.2 系统需求分析 . 5 2.3 系统设计目标 . 6 2.4 系运行环境 . 6 2.5 系统开发环境 . 6 3 局域网聊天程序系统设计 . 7 3.1 系统结构设计 . 7 3.2 数据库设计 . 7 3.3 客户端服务器功能设计 . 7 3.4 客户端设计 . 8 3.5 服务器端设计 . 9 3.6 聊天中公聊和私聊的设计 . 10 3.7 界面设计 . 11 3.7.1 客户端界面设计 . 11 3.7.2 服务器界面设计 . 12 4 系统实现及核心代码 . 13 4.1 网络通信核心代码 . 13 4.2 用户注册登录下线模块功能代码 . 15 5 系统测试 . 17 5.1 测试方法 . 17 5.2 测试结果 . 17 5.3 测试结论 . 17 无忧无虑毕设网 ():毕业设计源码下载 毕业设计源码下载: 5.4 程序运行截图 . 18 结 论 . 18 参考文献 . 19 致 谢 . 20 声 明 . 21 无忧无虑毕设网 ():毕业设计源码下载 第 1 页 共 22 页 1 引 言 即时通讯软件的出现正在逐渐改变人们的沟通与交际方式。无论近在咫尺,还是远隔重洋,也只是在键盘和鼠标之间就可以解决问题 。 即时通讯服务非常适合企业内部或企业和客户之间的交流。网络聊天程序 .越来越 影响着我们的网络生活 。 习惯了通过类似 ICQ、 QQ、 MSN 之类的程序和朋友聊天、发信息,不过所有聊天程序都需要 Internet 的支持,而无法在 局域网内部 “大显身手 ”,那么你是否想到过要让单位内部的员工 ,寝室周围的同学 ,不用上 Internet 就可以轻松体验到聊天的快乐呢? 基于以上原因,开发 局域网 聊天程序就有了必要性 ,让单位员工 或寝室同学 不出内网就能自由聊天 。 随着全球信息化进程的不断发展,网络也在飞速发展。出于高效、快速地处理各种事务的目的,越来越多的企业 和单位 在其内部使用局域网来进行工作 和交流 。在内部局域网 的帮助下,企业得以简化信息流程,提高信息交换的速度,从而提高工作效率。然而,随着 局域网 规模的扩大,业务量的增加,在局域网上运行的应用越来越多,如知识库、网络会议、数据库应用和数据的同步与备份等,这些应用对局域网的信息吞吐、处理能力的要求也越来越高。这些在原有局域网设计之初未曾考虑到的新情况的出现使得局域网不堪重负,容易发生信息阻塞,此时,局域网不但不能提高生产效率,反而成为 工作效率 的瓶颈。 为了解决上述矛盾, 前辈们 提出了许多方法。提升网络带宽及增加服务器的吞吐能力是解决此矛盾的一种方法。然而,从 局域网 运行的 成本方面考虑,无论是单纯地提升网络带宽或增加服务器的吞吐能力都不能从根本上解决局域网资源紧张的问题,对旧有局域网的大规模硬件改造反而会增加 成本 的负担。 基于 Socket 的局域网聊天室是局域网通信软件的具体实例之一,它很好地诠释了 Socket 通信的原理,并且在 局域网 部通信、教学、讨论等应用中都具有一定的实用价值。它具有信息收发速度快,保密性好,占用网络带宽资源低,占用服务器吞吐能力低,易于编程实现等优点。 2 局域网聊天程序系统分析 2.1 系统理论基础 2.1.1 TCP/IP 的特点 TCP/IP 协议的核心 部分是传输层协议 (TCP、 UDP),网络层协议 (IP)和物理接口层,这三层通常是在操作系统内核中设计。因此用户一般不涉及。 TCP 是面无忧无虑毕设网 ():毕业设计源码下载 第 2 页 共 22 页 向连接的,通信双方保持一条通路,好比目前的电话线,使用 telnet 登陆 BBS,用的就是 TCP 协议; UDP 是无连接的,通信双方都不保持对方的状态,浏览器访问 Internet 时使用的 HTTP 协议就是基于 UDP 协议的。编程时,编程界面有两种形式:一、是由内核心直接提供的系统调用;二、使用以库函数方式提供的各种函数。前者为核内设计,后者为核外设计。用户服务要通过核外的应用程序才能设计, 所以要使用套接字 (socket)来设计。 2.1.2 客户机 /服务器模式 C/S 结构( Client/Server 结构)是大家熟知的客户机和服务器结构。它是软件系统 体系结构 ,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client 端和 Server 端来实现,降低了系统的通讯开销。目前大多数应用 软件 系统都是 Client/Server 形式的两层结构,由于现在的软件应用系统正在向分布式的Web 应用发展, Web 和 Client/Server 应用都可以进行同样的业务处理,应用不同的模块共享逻辑 组件 ;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中 的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。 首先服务器方要启动,并根据请求提供相应服务 : ( 1) 打开一通信通道并告知本地主机,它在某一公认地址端口上 (如 http 为80)接受客户请求。 ( 2) 等待客户请求到达该端口。 ( 3) 接收到重复服务请求,处理该请求并发送应答信号。接收并发服务请求,要激活一新进程来处理这个客户请求。新进程处理此客户请求,并不需要对其他请求做出应答。服务完成后,关闭此新进程与客户的通信链路,并终止。 ( 4) 返回第二步,等待另外的客户请求 ( 5) 关闭服务器。 客户方 : ( 1) 打开一通信通道,并连接到服务器所在主机的特定端口。 ( 2) 向服务器发出服务请求报文,等待并接收应答;继续提出请求。 ( 3) 请求结束后关闭通信通道并终止。 从上面的描述过程可知: ( 1) 客户与服务器进程的作用是非对称的。因此编码不同。 无忧无虑毕设网 ():毕业设计源码下载 第 3 页 共 22 页 ( 2) 服务进程一般是先于客户请求启动的。只要系统运行,该进程一直存在,直到正常终止或者强迫终止。 在 TCP/IP 网络中两个进程间的相互作用的主机模式是客户机 /服务器模式(Client/Server model)。该模式的建立基于以下两点: 1、非对等作用; 2、通信完全是异步的 。客户机 /服务器模式在操作过程中采取的是主动请求服务响应的方式 ,如图 1 所示:客 户 端 A客 户 端 B服 务 器 : 监 听局 域 网请求A请求B响应B响应A请 求 A响应A响应B请求B 图 1 客户端服务器模式 2.1.3 Socket 介绍 Socket 是建立 在传输层协议 (主要是 TCP 和 UDP)上的一种套接字规范,最初是由美国加州 Berkley 大学提出,它定义两台计算机间进行通信的规范(也是一种编程规范),如果说两台计算机是利用一个 “通道” 进行通信,那么这个 “ 通道 ” 的两端就是两个套接字。套接字屏蔽了底层通信软件和具体操作系统的差异,使得任何两台安装了 TCP 协 议软件和实现了套接字规范的计算机之间的通信成为可能。 微软的 Windows Socket 规范 (简称 Winsock)对 Berkley 的套接字规范进行了扩展,利用标准的 Socket 的方法,可以同任何平台上的 Socket 进行通信;利用其扩展,可以更有效地实现在 Windows 平台上计算机间的通信。 Socket 减轻了编写计算机间通信软件的难度; 无忧无虑毕设网 ():毕业设计源码下载 第 4 页 共 22 页 标 准的 Socket 的应用程序框架如下: Server 方: Socket() 新建一个 Socket Bind() 同服务器地址 绑 定 Listen() Accept() block wait read()接受消息,在 windows 平台中,方法为 send(TCP),或者是 send to(UDP)处理服务请求 Write()发送消息 ,在 windows 平台中,方法为 send(TCP), 或者为 send to(UDP)。 Client 方相对简单: Socket() Connect()通过一定的 port 连接特定的服务器,这是与服务器建立连接 Write() Read()。 Socket 可以是基于 TCP 的,也可以是基于 UDP,同时 Socket 甚至建立在 其他的协议,比如 IPX/SPX, DECNet 等。在新建一个 Socket 时,可以指定新建何类Socket。 Bind()用来同服务器的地址 绑定 ,如果一个主机只有一个 IP 地址,实际上 绑 定的作用就相对多余了。 Listen()开始监听网络, Accept()用于接受连接,其返回值是保持同客户机联系的 Socket。 在 Delphi 中,其底层的 Socket 也应该是 Windows 的 Socket。 Inprise 在 Delphi中对 Windows Socket 进行了有效的封装,使得用户可以很方便地编写网络通信程序。 Socket 系 统调用包括创建 Socket、 将创建的 Socket 与本地端口绑定 、 建立Socket 连接服务器 、 监听是否有连接 、 请求数据的可控缓冲发送 和 可控缓冲接收 ,到最后 关闭 Socket。 首先在服务器方,利用 socket()函数建立流式套接字,返回套接字号 s,接着利用 bind()函数将套接字 s 与本地地址绑定,紧接着利用 listen()函数通知 TCP,监听客户方,服务器准备接收连接,没有连接的话,服务器方通过 closesocket()关闭套接字 s,服务结束。有连接的话,在客户方,通过 socket()函数建立流式套接字 s,此时 在服务器方,建立连接,通过 accept()返回,得到新的套接字 ns,客户方通过 connect()将套接字 s 与远程地址连接 ,此时服务器方 /客户方在 ns/s 上读 /写数据,直到交换完成。交换完成后,服务器方 /客户方关闭套接字 ns/s,最后服务器方通过 closesocket()关闭最初套接字 s,服务结束。 具体流程如图 2 所示: 无忧无虑毕设网 ():毕业设计源码下载 第 5 页 共 22 页 服 务 器 方接 收 连 接 A c c e p t ( ) 等 待 客 服 端的 连 接 监 听 连 接 请 求 l i s t e n ( )与 本 地 地 址 绑 定 b i n d ( )建 立 服 务 器 s e r v e r s o c k e t ( )建 立 连 接 C l i e n t C o n n e c t ( )接 收 / 发 送 数 据 r e c v ( )/ s e n d ( )关 闭 连 接 c l o s e s o c k e t ( )关 闭 服 务 器客 户 端 方建 立 客 户 端 c l i e n t s o c k e t ( )与 远 程 地 址 连 接 c o n n e c t ( )R e m o t e A d d r e s s发 送 / 接 收 数 据 s e n d ( ) / r e c v ( )关 闭 连 接 c l o s e s o c k e t ( ) 图 2 面向连接的套接字的系统调用 流程 图 2.2 系统需求分析 局域网聊天程序的实现主要为局域网内的计算机提供交流的平台。完成一个无忧无虑毕设网 ():毕业设计源码下载 第 6 页 共 22 页 基 于服务器和客户端的局域网通讯软件,类似于聊天室,可进行注册、登录、系统信息记录、聊天等功能。用户容易使用,便于管理。 2.3 系统设计目标 局域网聊天程序的实现,主要 为需要局域网内聊天的用户设计一个聊天平台; 本系统的目的是为了让 局域网内的计算机用户如寝室、办公室 能随时随地通过网络进行 交流。 局域网聊天程序 的设计目标为一个高性能的,易于使用的,面向局域网 的 即时信息软件。最终的 程序 应具有如下功能 : 客户端使用 简便, 服务器端运行稳定。客户端与服务器端可运行在多种 系统平台,具有良好的兼容性能。 客户端与服务器端功 能独立,可独立运行在不同的计算机上或运行在同一台计算机上 ,具有最大的灵活性。 能够 进行注册,设置自己的用户名和密码, 自动更新其他用户的名单。 选择特定用户并与其交谈 ,还可以向在所有在线的用户发送消息 。 服务器能够记录所有用户的登录、退出、注册等系统消息。 2.4 系统运行环境 硬件环境: CPU: Intel Pentium-M 725 1.6GHz 内存: 512 MB 硬盘: 60 G 软件环境: 操作系统: Microsoft Windows XP Professional 应用软件: Delphi 7.0 + Database Desktop 2.5 系统开发环境 本系统开发环境采用 Borland 公司新推出的 Delphi7.0 Delphi 是全新的可视化编程环境 ,为我们提供了一种方便、快捷的 Windows应用程序开发工具。它使用了 Microsoft Windows 图形用户界面的许多先进特性和设计思想 ,采用了弹性可重复利用的完整的面向对象程序语言 (Object-Oriented Language)、当今世界上最快的编辑器、最为领先的数据库技术。对于广大的程序开发人员来讲 ,使用 Delphi 开发应用软件 ,无疑会大大地 提高编程效率 ,而且随着应用的深入 ,您将会发现编程不再是枯燥无味的工作 Delphi 的每一个设计细节 ,都将带给您一份欣喜 。 无忧无虑毕设网 ():毕业设计源码下载 第 7 页 共 22 页 3 局域网聊天程序系统设计 3.1 系统结构设计 本系统采用 C/S 结构, 最重要的特点是非对等相互作用 ,即客户与服务器处于不平等的地位 ,服务器拥有客户所不具备的硬软件资源 ,客户和服务器分别是服务的请求者和提供者。网络中各个机器的资源是不平等的 ,网络的真正目的就是共享这些不均 等资源 源 ,非对等相互作用特点也正好体现和适应了客观现实中资源的不均等现象。 局域网 上不同主机进程间通信完全是异步的 ,通 信时机具有随机性 ,所以必须 用这种 为通信双方的数据交换提供同步的机制 。 3.2 数据库设计 局域网聊天程序的 数据库设计 (Database Design)把系统中大量的数据按一定的模型组织起来,提供存储、维护、检索数据的功能,使信息系统可以方便、及时、准确地从数据库中获得所需的信息。 设计数据库应该具备数据库的基本知识和数据库设计技术 , 计算机科学的基础知识和程序设计的方法和技巧 及 软件工程的原理和方法应用领域的知识 。 根据 局域网聊天程序系统 的一般要求,通过对整个系统运行过程和数据流程分析,得出本系统的实体表:用户 基本信息表。本系统设计了一个简单的数据库包括 username 和 password 两个字段。用户基本信息表如表 1: 表 1 用户基本信息表: DB_USER 中文名称 字段名 类型 长度 是否允许空 备注 用户名 username nvarchar 10 not null PK 密码 password nvarchar 100 not null 3.3 客户端服务器功能设计 客户端主要功能有用户注册、用户登录、在线用户列表、消息收发模块。而消息收发模块又分为公聊和私聊两种。客户端的功能模块如图 3 所示; 局 域 网 聊 天 程 序 客 户 端在 线 用 户 列 表用 户 登 录用 户 注 册消 息 收 发 图 3 客户端功能模块图 无忧无虑毕设网 ():毕业设计源码下载 第 8 页 共 22 页 服务器主要功能有消息处理、系统消息、在线用户列表、监听状态控制,如图 4 所示 : 局 域 网 聊 天 程 序 服 务 器监 听 状 态 控 制在 线 用 户 列 表系 统 消 息消 息 处 理 图 4 服务器功能模块图 3.4 客户端设计 客户端设计时以用户使用为出发点,功能分登录、注册、输入服务器 IP、聊天、用户列表和关于这几个详细模块。 首先设计一个连接模块,即输入服务器 IP 后看能否连接到服务器,要能先连接到服务器才能再进行登录注册等操作,这样做可以让用户知道服务器是否在运行。连接 到服务器后,进行注册,登录时系统要能根据用户输入的用户名和密码判断该用户是否为合法用户;如果用户输入的用户名或密码错误,系统将给出相应的提示,并要求用户进行注册或重新登录;如果用户输入的用户名和密码正确,可进行聊天操作。这里需要说明的是,在连接到服务器、登录、注册等程序没有完成时聊天模块和用户列表模块设计成非激活状态,登录成功后再激活这两个模块。用户列表只是显示在线用户,当有新用户上线时用户列表动态刷新。具体流程图如图 5 所示: 无忧无虑毕设网 ():毕业设计源码下载 第 9 页 共 22 页 开 始连 接 到 服 务 器登 录获 得 在 线 用 户列 表聊 天断 开 连 接登 录 界 面有 新 用 户 上 线刷 新 用 户 列 表退 出 程 序成 功失 败提 示 用 户 进 行注 册注 册 图 5 客户端系统流 程图 3.5 服务器端设计 服务器端分为监听控制、系统信息栏、及时状态显示和用户列表几个详细模块。服务器运行时要能对监听状态进行控制,可以在不退出程序的情况下关闭服务器。服务器设计一个系统信息栏,记录服务器的各种状态变化和用户的登录、注册、下线、客户端的连接等信息,方便管理员进行管理。服务器同样设计一个可以动态刷新的在线用户列表,管理员可以看到当前的用户在线情况。具体流程图如图 6 所示: 无忧无虑毕设网 ():毕业设计源码下载 第 10 页 共 22 页 开 始处 于 监 听 状 态检 测 到 客 户 端连 接 到 服 务 器关 闭 服 务 器退 出 程 序在 线 用 户 列 表 刷 新 ,系 统 信 息 栏 显 示 系 统 信 息登 录成 功提 示 用 户 重 新 登 录失 败 图 6 服务器端系统流程图 3.6 聊天中公聊和私聊的设计 聊 天时可以向在线用户中其中一个发送消息也可以向所有在线用户发送消息。每个在线用户都和服务器建立了一个独立的连接,如果其中一个用户 A 向用户 B 发送消息 a,工作原理是:用户先把消息 a 发给服务器,服务器在把此消息发给用户 B;如果用户 A 向所有在线用户发送消息 b,工作原理是:用户先把消息 b 发给服务器,服务器再把此消息发给所有在线用户。如图 7 所示: 无忧无虑毕设网 ():毕业设计源码下载 第 11 页 共 22 页 服 务 器在 线 用 户 B在 线 用 户 A 在 线 用 户 C在 线 用 户 D消 息 a ( 私 聊 )消 息 b ( 公 聊 )消 息 b消息a消息b消息b 图 7 公聊私聊的处理 3.7 界面设计 3.7.1 客户端界面设计 通过初步规划,客户端的界面应该包括以下内容: IP 输入栏、用户登录栏、用户注册栏、用户列表栏、聊天记录显示栏、聊天信息输入栏和关于对话框。 总体思想是上下,下分两栏,使用框架做布局,此方法可以使整个系统更加符合信息空间的信息存储,运行速度更快,信息层次更加清晰,用户操作则更方便,更有条理。 整体界面的设计的下栏为聊天区,下栏右边为用户列表,左边为聊天记录和登录信息的显示栏,下方为聊天记录输入框,注册和关于为弹出对话框。示意图如图 8、图 9、图 10: 无忧无虑毕设网 ():毕业设计源码下载 第 12 页 共 22 页 图 8 客户端界面设计 图 9 注册栏设计 图 10 关于对话框设计 3.7.2 服务器界面设计 客户端 的界面应该包括以下内容:服务器监听状态控制栏、在线用户列表栏、无忧无虑毕设网 ():毕业设计源码下载 第 13 页 共 22 页 系统信息栏和关于对话框,如图 11 所示: 局 域 网 聊 天 程 序 服 务 器帮 助 信 息用 户 列 表服 务 器 监 听 状 态 控 制 栏用 户 注 册 栏 图 11 服务器功能图 整体界面的设计同样为上下分开布局,下栏为服务器监听状态控制栏,通过点击右边用户列表栏的用户来完成用户的选择。上栏为用户列表和系统信息栏,注册为弹出对话框,同客户端一样,示意图略。示意图如图 12: 图 12 服务器界面设计 4 系统实现及核心代码 4.1 网络通信核心代码 begin if not serversocket1.Active then begin serversocket1.Active:=true; /如果 serversocket 没有激活则激活它 无忧无虑毕设网 ():毕业设计源码下载 第 14 页 共 22 页 memo1.Lines.Add(服务器连接! +Datetimetostr(now)+); /状态栏显示服务器当前时间状态 end else showmessage(已经在监听状态 ); end; /点击监听按钮时服务器开始监听请求 begin clientip:=socket.RemoteAddress end; /客户端的 IP 地址 procedure TForm1.ServerSocket1Listen(Sender: TObject;Socket: TCustomWinSocket); begin statusbar1.SimpleText:=监听状态 .; counter:=0; end; /服务器处于监听状态时状态栏显示“监听状态 ” begin tmptext := socket.ReceiveText; if pos(%&%&%&,tmptext)0 then / 当服务器收到的 text 中有 %&%&%&字符串时表示私聊 begin tmptext := copy(tmptext,1,length(tmptext)-6); signpos:= pos(&,tmptext); chattext:= copy(tmptext,1,signpos-1); member:=copy(tmptext, signpos+2,pos($,tmptext)-2-signpos); usename:=copy(tmptext,pos($,tmptext)+2,length(tmptext)-pos($,tmptext)+2); /从 text 中分别提取聊天信息,发送人,接收人等相关信息 for i:=0 to counter-1 do begin if member=chatnamei then begin serversocket1.Socket.Connectionsi.SendText(usename+对你说: +chattext); break; /发送聊天信息给接收人 end; end; 无忧无虑毕设网 ():毕业设计源码下载 第 15 页 共 22 页 end else / 当无任何标记时表示公聊 begin for i:=0 to counter-1 do serversocket1.Socket.Connectionsi.SendText(tmptext); /对所有人发送信息 end; end; 以上是聊天部分的代码,服务器通过特殊的字符串来区分公聊和私聊,当有%&%&%&字符串时表示私聊;当无任何标记时表示公聊。 4.2 用户注册登录下线模块功能代码 if pos($%$%$%,tmptext)0 then / 当有 $%$%$%表示有登陆信息 begin tmptext := copy(tmptext,1,length(tmptext)-6); chatnamecounter:=tmptext; listbox1.Items.add(tmptext); /用户列表添加新登录的用户 check :=(table1.lookup(usename,tmptext,password); socket.SendText(check+#$%&); memo1.Lines.Add(用户 +tmptext+上线了。 ); if counter0 then begin for i:=0 to counter-1 do begin serversocket1.Socket.Connectionscounter.SendText (chatnamei+()&*%); serverSocket1.Socket.Connectionsi.SendText(tmptext+()&*%); sleep(300); end; end; inc(counter); end else if pos(?*#,tmptext)0 then /当有 ?*#字符串表示注册信息 begin 无忧无虑毕设网 ():毕业设计源码下载 第 16 页 共 22 页 signpos:=pos(?*#,tmptext); member:=copy(tmptext,1,signpos-1); chattext:=copy(tmptext,signpos+6,length(tmptext)-6-length(member); with table1 do begin if table1.FindField(usename).AsString=member then socket.SendText(用户名已经有人用了,请检查后重新注册。 ) else /注册时进行用户名验证 begin insertrecord(member,chattext); memo1.Lines.Add(新用户: +member+注册成功! ); socket.SendText(注册成功,请先登陆再进行聊天! ); end; /注册成功后提示 end; end else if pos(*&%#),tmptext)0 then / 当有 *&%#)字符 串表示有人下线了 begin tmptext:=copy(tmptext,1,length(tmptext)-8); memo1.Lines.Add(用户 +tmptext+下线了。 ); for i:=0 to counter-1 do serversocket1.Socket.Connectionsi.SendText(tmptext+$%#$); for i:=listbox1.items.Count downto 1 do if listbox1.Items.Stringsi-1=tmptext then begin listbox1.Items.Delete(i-1); /从用户列表中去除下线的用户 dec(counter); end; end 客户端与服务器进行通信时同样是通过附加不同的特殊字符串来让服务器区分登录、注册、下线等信息,当有 *&%#)字符串表示有人下线了,listbox1.Items.Delete(i-1);表示从用户列表中删除下线的用户 ;当有 ?*#字符串表示注册信息;当有 $%$%$%表示有登陆信息。 无忧无虑毕设网 ():毕业设计源码下载 第 17 页 共 22 页 5 系统 测试 5.1 测试方法 ( 1)运行服务器,看能否对服务器的监听状态进行管理,开关服务器看系统信息栏有没有相关记录。 ( 2)运行客户端,输入服务器的 ip 地址,测试看能否连接到服务器。 ( 3)客户端连接到服务器后,进行注册,注册成功后看能否成功登录,登录后看聊天模块是否激活。 ( 4)注册若干个用户进行登录,看服务器 和客户端的在线户列表是否刷新和同步。 ( 5)看能否进行聊天,公聊和私聊能否正常进行。 ( 6)看服务器的系统信息栏是否记录了客户端的连接,用户的注册、登录、下线等信息。 5.2 测试结果 ( 1)服务器能够正常运行,能够对服务器的监听状态进行管理,并且系统信息栏有相关记录。 ( 2)客户端能够连接到服务器,并能够进行注册和登录 ( 3)在有新用户登录时,用户列表动态刷新 ( 4)聊天功能可以正常进行 ( 5)服务器系统信息栏记录了用户的注册、登录、下线等相关信息 5.3 测试结论 以上的测试案例是单独进行测试的,还需要 进一步的交叉案例测试。通过以上简单测试说明了设计方法的正确性,它已经初步具备了局域网聊天程序的基本框架,具有良好的检测性能和准确的检测结果。但系统构架和代码设计还需要进一步优化,以提高系统的运行效率,降低所耗的系统资源,为用户提供更好的服务。 无忧无虑毕设网 ():毕业设计源码下载 第 18 页 共 22 页 5.4 程序运行截图 图 13 服务器运行界面 图 14 客户端运行界面 结 论 经过了 3 个月的忙碌,局域网聊天程序基本开发完毕。其功能基本符合用户需求。从解决不了细小问题的苦恼到问题最终解决的喜悦,一直伴随着整个设计过程。整个设计过程是不断学习,不断 发现问题、分析问题、解决问题的过程。使我受益良多。设计期间有许多的感触、想法、经验,教训,对以后的学习、工无忧无虑毕设网 ():毕业设计源码下载 第 19 页 共 22 页 作有很大的益处。 另外,在使用参考书籍的过程中,有很多的精湛的细节值得认真学习和领悟。 本设计在查阅了大量的文献后进行理论研究的同时,借鉴了其他聊天程序的优缺点,在此基础上展开了研究工作,归纳起来,论文取得的成果和创新点主要有以下几个方面: 通过网络编程,设计了基本的聊天功能和登录注册功能。 对典型的 C/S 结构有了基本了解。 将数据库和网络编程相结合,利用 DELPHI7.0 这一软件进行编程,将在大学里学到 的知识进行了很好的综合。 利用 TCP/IP 协议中的 TCP 协议,即面向连接的服务,进行数据的传输,对网络中数据的传输过程进行了认真的分析。 至 此,一个基于 TCP/IP 协议的 局域网 聊天室就完成了。在局域网内运行该程序并进行设置,即可自由的聊天了。当然,由于时间紧迫,所设计的软件难免有不足之处,敬请各位评委老师指导。 在 使 用 Delphi 7.0 制作基于 Socket 的局域网聊天室时,我们一般不需要直接进行套接字编程。 Delphi 带有大量完成专门网络连接功能的部件,使用这些部件完全可以满足我们大多数编程的需要。由于 Delphi 封装 了 WindowsSocketAPI,使得我们在 Delphi 环境下编写 WindowsSocket 程序变得非常轻松。聊天室的制作是件烦琐而有挑战性的工作,涉及面广,与实践教学环节密不可分,与课程内容密切相关,要多参考用其他语言是如何制作聊天室的,多搜集一点网上的资料。 由于时间和个人水平的有限,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论