基于.NET的局域网聊天工具.doc

上传人:h**** 文档编号:130219 上传时间:2018-07-09 格式:DOC 页数:63 大小:533.50KB
下载 相关 举报
基于.NET的局域网聊天工具.doc_第1页
第1页 / 共63页
基于.NET的局域网聊天工具.doc_第2页
第2页 / 共63页
基于.NET的局域网聊天工具.doc_第3页
第3页 / 共63页
基于.NET的局域网聊天工具.doc_第4页
第4页 / 共63页
基于.NET的局域网聊天工具.doc_第5页
第5页 / 共63页
点击查看更多>>
资源描述

1、 目 录 基于 .NET 局域网聊天工具设计 . 3 基于 .NET 局域网聊天工具设计 . 3 摘要 . 3 关键词 . 3 1.局域网聊天工具概述 . 3 1.1 聊天工具开发的目标 意义 .3 1.2 C/S结构与 Windows Socket 网络编程 .3 2.需求分析 . 4 2.1 用户需求 .4 2.2 系统功能需求 .4 2.4 测试环境规定 .4 2.5 可行性研究 .4 3 系统设计 . 5 3.1 系统功能结构 .5 3.2 系统功能需求 .5 3.3 性能要求 .6 4.系统模块详细设计 . 6 4.1 文本聊天模块实现 .6 4.1.1 文本聊天流程 . 6 4.1

2、.2 界面设计 . 8 4.2 文件传输模块实现 .8 4.2.1 文件传输 流程 . 8 4.2.3 界面设计 . 9 5.系统测试 . 10 5.1 系统测试概述 . 10 5.2 白盒测试 . 10 5.3 黑盒测试 . 10 6.主要问题及解决 . 11 6.1 多线程问题 . 11 6.2 套接字异常 . 11 6.3 网络流异常 . 11 参考文献 . 11 The Design of LAN Chat Tool Based on .Net . 13 Abstract . 13 Key words . 13 致 谢 . 14 基于 .NET局域网聊天工具 设计 个人信息 摘要 :

3、现在 很多政府机构 、 企业 、 学校 都是以一个统一的局域网联结在一起,再分别接入 INTERNET。因此基于局域网的即时通信工具,就这样应运而生了。本文提出了一个局域网聊天工具的设计,并在 WINDOWS 平台上加以了实现。本设计将文本聊天和文件传输等功能综合在一个客户端程序之内,使用 C#语言进行网络编程,并进行了人性化的界面设计,使用起来简单方便,并且功能十分合理,又易于扩展以及个性化定制。 关键词 : 局域网; C/S 体系结构 ; 文本聊天;文件传输 1.局域网聊天工具概述 1.1 聊天工具开发的目标 意义 本设计的主要工作是设计一个基于 Windows 平台 的局域网即时聊天工具

4、,具体是采用 C/S 模式实现用户之间的通信,然后阐述本软件的功能、特点及使用方法,并详细阐述开发本软件所用的相关技术,具体分析本软件的各个模块的功能及实现方法,说明本软件的设计思想及方法。 局域网聊天工具,是在局域网内部使用的,用户之间用来交流的一个工具,一般都具有文本聊天和文件传输功能。局域网聊天软件因其使用简单,系统资源消耗少等优点,成为各企事业单位等的局域网内广泛应用的软件之一。 1.2 C/S 结构与 Windows Socket 网络编程 通常的通信工具,都采用客户机 /服务器 (C/S)体系结构, C/S 结构是这样的一种结构:它包括客户机 ,一个服务器 ,客户机的作用是访问和处

5、理远程服务器上的数据 ,服务器的作用是接收和处理客户机的数据请求。 Client/Server 结构是当前数据库应用程序中极为流行的一种方式。尤其是网络技术的发展 ,使得当前很多系统都采用这种方式进行构造 ,其最大的优点是将计算机工作任务分别由客户端和服务器端来共同完成 ,这样有利于充分合理的利用系统资源。另外它的服务器端还可以将信息集中起来,任何客户机都可以通过访问服务器而获得所需的信息。 Client/Server 模型最终可归结为一 种“请求 /应答”关系。一个请求总是首先被客户发出 ,然后服务器总是被动地接收请求 ,返回客户需要的结果。在客户发出一个请求之前 ,服务进程一直处于休眠状态

6、。一个客户提出请求后 ,服务进程被“唤醒”并且为客户提供服务 ,对客户的请求做出所需要的应答。 在 IP 连接领域有两种通信类型:面向连接的 (Connection-oriented) 和无连接的 (Connectionless)。在面向连接的套接字中,使用 TCP 协议来建立两个 IP 地址端点之间的 会话。一旦建立了这种连接,就可以在设备之间可靠地传输数据。为了建立面向连接的 套 接字,服务器端和客户端必须分别进行编程。 在 System.Net.Sockets 名空间下,有两个专门用于 TCP 协议编程的类: TcpClient 类和 TcpListener 类。这两个类提供了直观的易于

7、使用的属性和方法,从而降低了 TCP 协议编程 的难度。一般情况下,使用TcpClient 连接、发送和接收数据,使用 TcpListener 监听是否 有传入的连接请求,使用 Close()方法释放与TcpClient 关联的所有资源。 2.需求分析 2.1 用户需求 随着中小型企事业的不断发展,在企业内部实现局域网通信是必 不可少的。局域聊工具就是一个非常好的局域网通信软件,它可以在职工不移动位置的情况下进行在线聊天、文件传递。这样,可以大大提高企业的工作效率,便于企业内部职员的交流。根据用户对聊天工具的要求,可分为以下几点: 1. 操作简单方便、界面简洁美观。 2. 可以在局域网实现文字

8、和文件的传输 。 3. 可以进行聊天记录保存 。 4. 可以实现局域网聊天 。 5. 系统运行稳定、安全可靠 。 2.2 系统功能需求 这个程序要实现的功能如下: 1. 程序启动之后就能看到当前哪些机器在线,哪些可以与之进行对等通信。 2. 一旦有某个网内的机器上线了,要有即时通知,并能及时 更新用户界面中的用户列表。 3. 当单击用户列表项的时候,直接在聊天对话框打字聊天,发送的聊天信息。 4. 当有远程用户向本机发送文件的时候,弹出一个消息提示,用户可选择接收或者拒绝。 5. 为 用户提供一个简单的聊天记录保存功能。 6. 文件传输过程中,应该有当前传输状态提示, 并 作为当前网络状态的一

9、种反馈。 2.4 测试环境规定 在开发过程中由开发人员自己,随时进行内部部分白盒测试,在开发完成以后,自己进行一个全面的白盒测试,然后请同学帮忙进行黑盒测试。 2.5 可行性研究 1.成本可行性分析 本软件只做开发学习使用,所以暂且不考 虑经济成本及盈利问题。 2.技术可行性分析 开发所需要的软硬件平台已经搭建好,并进行了合理而完善的需求分析,做好了充分的前期准备工作,其次因为本程序的平台将基于 WINDOWS,将要使用网络通信技术,而 WINDOWS 有完善成熟的网络通信接口,以及与 C#开发环境的严密契合能力, 与 更大规模的 INTERNET 通信工具产品也已有例在先,所以这个程序的开发

10、在技术上是完全可行的。 3 系统设计 3.1 系统功能结构 本系统中主要包括两个部分:服务器端和客户端。 1. 服务器端的功能包括:验证客户 登录、 添加新用户 、传输 用户信息。 服 务器 功能结构如图 3-1 所示 : 图 2-1 服务器 端功能结构 2. 客户端的功能包括:用户登录 、 文本聊天 、 文件传输。 客户端功能结构如图 3-1 所示 : 图 2-2 客户端功能结构 3.2 系统功能需求 这个程序要实现的功能如下: 1. 程序启动之后就能看到当前哪些机器在线,哪些可以与之进行对等通信。 2. 一旦有某个网内的机器上线了,要有即时通知,并能及时更新用户界面中的用户列表。 3. 当

11、单击用户列表项的时候,直接在聊天对话框打字聊天,可以在其中编辑要发送的聊天信息,并进行发送。 4. 聊天界面要人性化,下面是发送框,上面有已有聊天记 录,并借助滚动条看到当次所有的聊天记录。 5. 当有远程用户向本机发送文件的时候,要弹出一个消息提示,提示本机用户,可以选择接收或者拒绝。 6. 为 用户提供一个简单的聊天记录保存功能。 7. 文件传输过程中,应该有当前传输状态提示, 并 作为当前网络状态的一种反馈。 3.3 性能要求 首先要求程序要完全可靠,可以应付各种由于系统问题产生的错误,比如初始网络失败,对方突然下线等。要求提前设想到类似的尽可能多的可能发生的事件,做出相应的应对措施,并

12、向用户提交简单易懂清晰明白的提示信息。 程序要有良好的容错性,当用户进行非法操作时或者 系统本身出现问题时要能以最好的方式退出程序,避免发生程序假死现象。 要求程序对所运行之系统的硬件条件要求尽可能低,运行时内存占用尽可能小,响应速度要尽可能快。并且不发生内存泄漏之类影响系统运行的错误事件。并且要求易于维护及扩展。所以应该采用模块化开发,各个模块之间不要有太多的耦合,以免维护困难。 4.系统模块详细设计 4.1 文本聊天模块实现 4.1.1 文本聊天流程 开启服务器,文本聊天窗体加载成功后,将启动监听线程,服务器主要是负责监听局域网内的用户的连接请求。收到客户发起的连接请求后,若服务器处于空闲

13、状 态,弹出消息提示框,对请求进行处理,服务器可以选择接受或者拒绝客户端的连接。若同意连接,则返回给客户端同意信号,开启服务器的接收信息线程,并置消息发送事件为 Enable。客户端收到服务器返回的同意信号后,也开启接收信息线程,并置消息发送事件为 Enable。通信双方就可以进行文字聊天了。若服务器端拒绝客户端的连接,则关闭tcpconnect,并关闭网络流,继续执行监听。客户端得知服务器端关闭 tcpconnect 并关闭网络流之后,则释放本次 socket 和网络流。若已建立连接,当断开连接时,将向对方发送断开信号, 然后将释放 Socket 和网络流,不影响到下一次连接的接入。文本聊天

14、服务器工作流程如图 5-1 所示。客户端用来向服务器端发起一个连接,等待服务器的允许接入确认。若服务器端同意连接请求,接收到服务器的同意连接信号后,开启接收信息线程,并置消息发送事件为 Enable,通信双方就可以进行文本聊天了。若服务器端拒绝连接,则释放 Socket 连接并关闭网络流。若已建立连接,当断开连接时,将向对方发送断开信号,然后将释放Socket 和网络流,不影响到下一次连接的发起。 如图: 图 4-1 文本聊天程序流程图 开启监听线程,监听端口 开始 开始 开始 发送拒绝信号 发送拒绝信号 是 是 是 否 是否断开连接? 发送断开信号,关闭文本聊天 是 终止 否 连接服务器 连

15、接服务器 4.1.2 界面设计 如 图 4-2 客户端和服务器界面 客户端采用当前流行的 QQ 相仿界面 , 而服务器界面能够简洁明朗的显示客户信息。在 设计的时候,采用了一些通俗易懂的图片 、 按钮 和菜单选项,使得 整体界面整洁, 操作简单,设计人性化。 4.2 文件传输模块实现 4.2.1 文件传输流程 开启窗体后,接收端执行监听线程。当接收到客户发起的文件传入请求后,弹出消息提示,提示用户对请求进行处理,同意或者拒绝接收。若同意接收,则弹出文件 保存对话框,用户选择文件保存路径并确认后,发送接收信号给文件发送端,启动计时器开始接收文件流,将远程文件保存在本地,并在文件传输过程中对文件传

16、输状态进行反馈,文件接收完毕后,关闭计时器,关闭文件流,并在状态栏上显示出完毕状态。若拒绝接收,则向发送端返回拒绝信号,继续执行监听线程,等待下一次的文件传入请求。文件传输接收端工作流程图如图 4-2 所示。 图 4-2 文件传输接收端程序流程图 4.2.3 界面设计 开启窗体后,发送端选择用户需要发送的文件,向接收端发 起的文件传输请求,若接收端端同意接收,开启计时器,将本地文件通过网络发送给接收端,并在文件传输过程中对文件传输状态进行反馈,文件发送完毕,关闭计时器,关闭文件流,并在状态栏上显示出完毕状态。若接收端拒绝接受文件,则取消本次文件发送,等待用户的下一次文件发送事件。 文 件 传

17、输 模 块 的 界 面 如 图 4-3 所示 :执行监听线程 同意接收文件? 否 是 发送同意接收信号,启动计时器,接收文件流,反馈状态 终止 接收发送端的文件传入请求 关闭计时器,关闭文件流 将远程文件存储至本地文件 开始 发送拒绝信号 图 4-3 文件传输接收 图 5.系统测试 5.1 系统测试概述 测试的目的是为了发现功能是否达到,或者是否有更多的缺陷;测试只能证明缺陷存在,而不能证明缺陷不存在;测试有助于提高软件的质量,但是提高软件的质量不能依赖 于测试;关于测试人员的安排,由我本人做白盒测试,由同学帮助做黑盒测试。 5.2 白盒测试 正确性测试检查软件的功能是否符合规格说明。由于正确

18、性是软件最重要的质量因素,所以其测试也最重要。 在集成 P2P文本聊天程序退出时,常常发生错误,异常退出,造成表面上看程序已结束,但却仍然驻留在内存中的现象。经过反复分析代码,最终确定问题出在程序退出处理流程上,通过修改和调试,问题解决。 整个开发过程中,共历经多次相互断开、连接测试, P2P文本聊天模块终于可以正常运行。借助在 P2P文本聊天模块开发过程中积累的经验,较顺利的 完成了 P2P文件传输模块的开发。通过在总集成后的程序的各个流程中添加消息提示框显示程序内部数据、对象的状态,并插入断点进行单步跟踪发现各模块工作正常,数据也未发生异常现象。 5.3 黑盒测试 用两台或两台以上机器通过交换机等构成一个局域网,进行正确的网络配置,每台机器上都安装了WINDOWS 操作系统 、 DirectX SDK 以及 .NET 2.0,并安装了本软件的正确拷贝。 先在其中一台机器 A 上启动服务端软件,开启监听服务。当 A 机器和 B 机器启动了客户端软件后,向服务器进行登录操作,服务器端验证了用户的登录后,向 局域网广播客户端的登录状态。 此时就在客户

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。