![基于WEB的文字聊天传输模块的设计_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-1/25/cfbb5ba8-2cff-4143-a592-24905f2058d5/cfbb5ba8-2cff-4143-a592-24905f2058d51.gif)
![基于WEB的文字聊天传输模块的设计_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-1/25/cfbb5ba8-2cff-4143-a592-24905f2058d5/cfbb5ba8-2cff-4143-a592-24905f2058d52.gif)
![基于WEB的文字聊天传输模块的设计_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-1/25/cfbb5ba8-2cff-4143-a592-24905f2058d5/cfbb5ba8-2cff-4143-a592-24905f2058d53.gif)
![基于WEB的文字聊天传输模块的设计_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-1/25/cfbb5ba8-2cff-4143-a592-24905f2058d5/cfbb5ba8-2cff-4143-a592-24905f2058d54.gif)
![基于WEB的文字聊天传输模块的设计_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-1/25/cfbb5ba8-2cff-4143-a592-24905f2058d5/cfbb5ba8-2cff-4143-a592-24905f2058d55.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于 WEB 的文字聊天传输模块的设计摘 要当前中国的互联网技术已经进入了一个飞速发展的时期, 即时通讯工具作为 当今网络应用的主流, 越来越受到了人们的青睐, 使人们的网上生活更加丰富多 彩。 当今使用最为广泛的即时通信工具聊天软件, 可以方便人们随时随地进 行在线交流, 比如腾讯公司的 QQ 聊天软件。 本毕业设计就是模拟 QQ 聊天软件, 开发一个包括文字聊天、文件传输、语音及视频交流等功能的聊天软件。本设计的开发采用 C/S结构,在基于 .NET 开发环境下,使用 C#编程语言进 行开发。 本文首先论述国内外聊天工具的发展情况和现今的发展方向, 并对开发 环境和开发语言进行了简单介绍;
2、 对本设计所要开发的多功能聊天软件作了较为 全面的需求分析, 并给出了多功能聊天软件的设计方案, 主要功能包括文字聊天、 文件传输、 语音聊天及视频聊天等; 本毕业设计主要实现的是多功能聊天软件的 部分功能,即文字聊天、 文件传输等功能, 主要完成的任务包括服务器模块的设 计、数据库的设计、添加好友、文字聊天和文件传输等功能。与另一位同学开发 实现的语音聊天与视频聊天模块集成在一起, 构成一个实用的、 功能完善的聊天 软件,达到预期目标;通过运行、测试与分析,该多功能聊天软件运行稳定、可 靠,具有一定的实用价值。关键词 :聊天软件;文字聊天;文件传输; C/S结构; QQ 聊天软件Design
3、 and Development of the Multi-function Chat Software Writing/File Transferring ModuleAbstractNowadays , China's Internet technology has already entered a rapid development times, the instant messenger takes now the mainstream of network application, which causes people's online life to be mo
4、re richly colorful, and has also received people's favors simultaneously. At present, the most widespread instant messenger chat software, may facilitate the people to carry on the online information exchange at anytime and anywhere, for instance the QQ chat software of Tencent company. This gra
5、duation project simulates QQ chat software, and develops a chat software that includes the writing, file transfer, audio chat, video chat and so on.This design development uses the C/S structure, uses the C# programming language to carry on developing this software based on .NET environment. This pa
6、per first elaborates the development situation of domestic and foreign chats tool and the development direction nowadays, and has carried on the simple introduction to the development environment and the development language. The demand of multi-function chat software is analyzed in detail, and its
7、plan is provided. Its main functions include the writing, file transfer, audio and video chat and etc. This graduation project mainly realizes the partial functions of multi-function chat software, namely the writing chat, the file transfer and so on, which mainly realizes the design of server modul
8、e, the design of database, adding of good friend, writing chat, file transfer and so on. Finally, this design integrates the functions that another schoolmate designs the writing and file transfer, which forms chat software of practical and full functions. This software achieves the anticipated targ
9、et. By running, testing and analyzing, it shows that this multi-function chat software is stable, reliable, and has some practical values.Key words:Chat Software; Writing Chat; File Transfer; C/S Structure; QQ Chat Software目 录论文总页数:24页1 引言 . 1 1.1课题背景 . . 1 1.2国内的发展现状 . 1 1.3本课题研究的意义 . 21.4本文的主要工作 .
10、 22 系统需求分析 . . 23 开发环境及开发工具 . . 3 3.1开发环境的概述 . 3 3.2C#语言的概述 . 53.3SQL 数据库的介绍 . 54 多功能聊天软件的设计方案 . . 6 4.1聊天系统流程的分析与设计 . 6 4.2数据库模块的分析与设计 . 7 4.3添加好友模块的分析与设计 . 84.4服务器模块的分析与设计 . 95 文字聊天、文件传输模块的设计与分析 . . 9 5.1文字聊天模块的分析 . 9 5.2文字聊天模块功能具体实现 . 9 5.3文件传输模块的分析 . 125.4文件传输模块功能具体实现 . 136 添加好友、服务器以及其它特殊功能模块实现分
11、析 . 15 6.1添加好友模块功能具体实现 . 15 6.2服务器模块功能具体实现 . 156.3好友信息窗体显示、排序功能具体实现 . 157 系统的综合测试与分析 . . 16 结 论 . . 20 参考文献 . . 21 致 谢 . . 错 误!未定义书签。 声 明 . . 错 误!未定义书签。1 引言1.1 课题背景随着互联网应用越来越丰富,以快速、交互、简便为代表的即时通讯工具, 已经成为当前网络用户最喜爱的网络沟通工具。 聊天软件作为当今使用最为广泛 的即时性通信工具之一,给互联网上的用户提供了诸多的服务,如文字聊天、 文 件传输、 语音聊天、视频聊天等功能。作为即时通讯工具最具
12、增长潜力之一的聊 天软件, 不仅在基础应用方面,还是产品扩展应用方面都将有质的飞跃, 它为满 足人们的需要,将其功能不断的完善。随着聊天软件功能的不断完善, 用户通过 聊天软件在互联网上尽情的交谈, 不但可以文字聊天和文件传输, 还可以通过语 音、视频来聊天。 在今后随着互联网技术的发展, 聊天软件也在以前所未有的速 度改变着人们的生活方式,它必定会成为人们网络生活不可缺少的一部分。 1.2 国内外的发展现状1996年 11月 ICQ 在全球发布,拉开了互联网 IM (Instant Messenger,即时 通讯 应用的序幕。 就是这样一款小软件在短短数年时间里发展出一个巨大的 IM 产业。
13、时至今日, 即时性通讯工具早已成为最热门的网络应用之一。 国内外的聊天 工具举不胜数。 ICQ 作为全球第一款即时性通讯工具,在经过短短数年的发展, 其行业内的地位如今已是无人能够撼动。 ICQ 名字取自英文 “ I seek you” 的谐音, 即是“我找你”的意思。最初的 ICQ 只有两个特性,即用户列表和即时聊天。 但一经推出就受到众多网民的喜爱, 6个月内其注册用户迅速攀升至 85万, 1998年它的用户数量更是翻了 10数倍, 达到了 1200万人。 ICQ 的迅猛发展也让当时 的互联网领头羊 Yahoo 和在桌面软件领域独步天下的微软嗅到了商机, 它们分别 推出了 Yahoo Me
14、ssenger 、 MSN Messenger 和昙花一现的 MS Chat 。即时通讯市 场雏形顿显, 有了国际互联网巨头和最大软件公司的融入, 即时通讯时代的大幕 就此徐徐拉开。当 ICQ 风行全球的时候,在国内各种仿 ICQ 的中文 IM 软件也纷纷推出, 时至今日, 占据国内的市场的主要是腾讯公司的 QQ 、 微软的 MSN 、 雅虎的雅虎 通等。其中腾讯公司的 QQ 以占据了国内 70%以上的市场。随着 IM 应用的深入,其功能早已超越了初期的即时文字聊天。表情图标早 已成为各个 IM 软件的标准功能,文件传输、语音 /视频聊天、游戏、网上交友等 高级功能也正越来越多地被集成进入 I
15、M 应用。事实表明,现在的 IM 已不再是 一个简单的沟通工具,而是一个信息资讯、交流互动、休闲娱乐中心, IM 平台 上的语音、视频、音乐点播、信息共享等新应用层出不穷。发展到现在, IM 软 件越来越成熟, IM 产业链也已经形成,已经成为现代人和现代经济中不可或缺的一部份,相信未来 IM 软件的道路会更加宽广和精彩。1.3 本课题研究的意义21世纪是信息的时代,随着互联网技术的发展,信息在传递方面也有了崭 新的一面。 现今聊天软件成为信息传递最为广泛的应用工具, 它发挥了即时性通 信的特点, 可以让用户在第一时间内得到信息的交流, 它不仅可以让用户进行文 字聊天, 而且还增添语音、 视频
16、功能。 这样可以让网上的好友身临其境的面对面 的聊天, 让彼此之间更为深入的了解。 人性化的设计让每个用户都可以得心应手 的使用,从而获得更多人的青睐。 Internet 的出现连通了整个世界,而聊天软件 的出现则连通了每一位网上的用户。 随着网络应用的发展, 聊天软件已经成为最 热门的网络应用之一。 经历了近几年突飞猛进的发展之后, 即时通讯工具早已不 再是简单的互联网通讯工具,它已经成为一个集互动交流、休闲娱乐、 信息管理 为一体的多元化互联网应用平台。 总之, 聊天软件的出现给人们彼此之间的沟通 带来了无比的方便, 人们可以通过聊天软件建立深刻的友情, 让人们在互联网上 的交流更加充满活
17、力与生机。1.4 本文的主要工作聊天软件作为使用最为广泛的即时性通讯工具, 它在拥有文字聊天基础功能 的同时, 为满足用户的需求, 还增加了文件传输、 语音、 视频聊天等主要的功能, 成为现在最为主流的网上应用软件。 本论文主要对聊天软件的文字聊天、 文件传 输功能进行分析与研究,总结出实现的相关理论与知识。首先论述了聊天软件对人们的生活有何影响, 结合国内外的聊天软件的发展 状况,谈谈聊天软件有何意义;然后对此聊天软件系统进行了较为详细的分析; 对开发环境和工具进行了说明; 提出了该多功能聊天软件的设计方案; 在本次多 功能聊天软件的设计与开发中, 作者主要负责设计开发服务器模块、 数据库模
18、块、 添加好友模块、文字聊天模块、 文件传输模块, 并对此聊天软件系统的服务器模 块、数据库模块、添加好友模块、文字聊天模块、文件传输模块的设计与开发进 行了较为详细的说明与分析。2 系统需求分析此聊天软件系统是模拟现今国内最为流行的即时性通讯工具 QQ ,其功能类 似于 QQ ,能够实现注册、登录、添加好友、文字聊天、文件传输、语音聊天、 视频聊天等功能。 该聊天软件系统是采用 C/S结构, 也就是客户端与服务器端的 结构体系, 基于对该聊天软件功能的分析, 分别对客户端与服务器端进行了设计。 该聊天软件的服务器端是用来实现对客户端提交的用户信息进行处理的功 能。服务器设计内容包含:信息接收
19、、 注册、 登录、 刷新、更新、用户退出处理、 添加好友等。 信息接收是提供服务器接受用户端发送信息的功能; 注册是服务器接受到用户的注册信息请求后, 并将其请求信息写入到数据库, 为用户的注册提 了相关服务;登录是服务器通过验证登录时信息来实现相关服务; 刷新是服务 器每过一段时间用来刷新一次, 来显示用户当前在服务器的信息状况, 如在线状 态等; 更新是服务器对用户在服务器中信息操作进行相关的服务; 用户退出处理 是服务器在用户推出聊天系统后作出的相关处理工作; 好友添加是服务器将用户 的好友信息写入数据库中用户好友表的操作。客户端既是用户使用的应用程序端, 用户通过该聊天软件的客户端来实
20、现网 上聊天的相关功能:注册、登录、添加好友、文字聊天、文件传输、语音聊天、 视频聊天等。 注册的功能是提交用户相关信息以及获得一个属于自己登录该聊天 软件系统的用户 ID 号;登录的功能是实现验证用户信息与合法使用该聊天软件 系统的权限;添加好友是实现用户之间好友添加功能;添加好友成功后, 就可以 与好友之间开始文字聊天、文件传输、语音聊天、视频聊天等功能。(1该服务器的运行环境: 操作系统:windows2000或 windows2003; 内存:256M 以上(最低为 256M ; CPU :Intel(R Celeron(R 2.0GHz或 AMD 1800+以上均可; 其它:Micr
21、osoft .NET Framework SDK。(2客户端的运行环境: 操作系统:windows XP或 windows2003等; 内存:256M 以上(最低为 256M ; CPU :Intel(R Celeron(R 2.0GHz或 AMD 1800+以上均可; 摄像头、耳机等外部设备。第一次使用系统的用户通过填写个人信息来注册,服务器返回一个注册 ID 号给注册用户,用来登录用。已经注册的用户可以在验证他的登录信息 (一般指 用户名和密码 后登录系统。 在线用户通过查看所要添加好友的用户列表相关的 信息,并且向添加好友发送请求添加的信息, 好友通过验证后, 向请求方发送同 意添加消息
22、,请求方添加完成后, 并把相关信息存入到好友表的数据库中。 在添 加完好友后,两人同时在线时,就可以聊天了。3 开发环境及开发工具3.1 开发环境的概述微软发布了 .NET 开发平台, 这是自 1993年 7月随着 Windows NT3.0出现的 Win32 API后微软软件开发平台的第一次大升级。比起 Win16来, Win32提供了 更多功能强大的 API ,但没有对工具和技术进行引人注目的改变。与之不同的是, .NET 开发平台在开发者用以创造应用程序的工具和技术上做了根本的改 变。 .NET 开发平台使得开发者创建运行在 Internet Information Server (II
23、S(互 联网信息服务器 Web 服务器上的 Web 应用程序更为容易,它也使创建稳定、 可靠而又安全的 Windows 桌面应用程序更为容易。.NET 开发平台包括以下内容:(1 .NET Framework (架构 ,包括:Common Language Runtime (CLR (通用语言运行环境 ,这是用于运行和加载应用程序的软件组件;新的类库, 分级组织了开发者可以在他们的应用程序中用来显示图形用户界面、 访问数据库 和文件以及在 Web 上通信的代码集。(2 .NET 开发者工具,包括:Visual Studio .NET Integrated Development Environ
24、ment (IDE (Visual Studio .NET集成开发环境 ,用来开发和测试应用 程序。(3 .NET 编程语言(例如 Visual Basic .NET和新的 Visual C# ,用来创建 运行在 CLR 下并且使用类库的应用程序。(4 ASP .NET,一个取代以前的 Active Server Pages (ASP 的特殊类库, 用来创建动态的 Web 内容和 Web 服务器应用程序,这些都将采用诸如 HTML 、 XML 和 Simple Object Access Protocol(SOAP (简单对象访问协议等 Internet 协议和数据格式。.NET 开发平台是一
25、组用于建立 Web 服务器应用程序和 Windows 桌面应用程 序的软件组件,用该平台创建的应用程序在 Common Language Runtime (CLR (通用语言运行环境 (底层的控制下运行。 CLR 是一个软件引擎,用来加载 应用程序,确认它们可以没有错误地执行, 进行相应的安全许可验证, 执行应用 程序,然后在运行完成后将它们清除。类库集提供了使应用程序可以读写 XML 数据、在 Internet 上通信、访问数 据库等的代码。 所有的类库都建立在一个基础的类库之上, 它提供管理使用最为 频繁的数据类型(例如数值或文本字符串的功能,以及诸如文件输入 /输出等 底层功能。Web
26、服务器应用程序通常依赖于 ASP.NET ,一个处理 Web 请求的服务器端 的库。 ASP.NET 又依赖一个用于发送和接收 SOAP 信息的 Web Services 库,以 及一个用于以浏览器接收用户输入并动态地生成 Web 页面以示响应的 Web 用户 接口(UI (有时称作 Web 表单 。 Windows 桌面应用程序通过使用 Win 表单库 (也称作 Windows 表单可以显示一个图形 UI 。最后, Visual Studio .NET 提供了一个用于在该平台上创建应用程序的图形 Integrated Development Ewironment(IDE (集成开发环境 。程
27、序员可以使用一种或多种 .NET 编程语言,来编写他们的代码,例如微软的 Visual Basic .NET (VB.NET , Visual C+, Visual C#和 JScrjpt .NET等。大量其它的 .NET 编程语 言可以从第三方厂商获得。3.2C#语言的概述C#是一种面向对象的语言,它功能强,易于表现,使用灵活。通过 C#可以 让开发人员快速的建立大范围的基于微软新的 .NET 的平台的应用,并且提供大 量的开发工具和服务帮助开发人员开发基于计算和通信的各种应用。 由于其优良 的面向对象设计,在构建从高级业务对象到系统应用的各种不同组件时, C#是 一个首要的选择。使用简易的
28、 C#语言构造,组件可以被转换为 WEB 服务,从 而允许从运行在任何操作系统上的任何语言中跨越 Internet 调用它们。不仅仅如 此, C#的设计为 C+程序员带来了快速的开发能力,而不用牺牲 C+已有的功 能和控制能力。 C#高度保持了与 C 和 C+的一致性。从继承角度来看, C#在更 高层次上重新实现了 C/C+,熟悉 C/C+的开发的人员可以很快的转变为 C#开 发人员。C#的重要特性:(1开发效率与安全性;(2与 Web 开发相结合;(3减少了开发中的错误;(4提供内置的版本支持来减少开发费用;(5更好的结合商业应用中的流程与软件实现;(6可扩展的协作能力。3.3 SQL Se
29、rver数据库的介绍SQL 是 Structured Query Language(结构化查询语言的缩写,是用户操作 关系数据库的通用语言。 SQL 虽然叫结构化查询语言,其查询操作确实是数据 库中的主要操作,但并不是说 SQL 语言只支持查询操作,它实际上包含数据定 义、数据操纵和数据控制等与数据库有关的全部功能。Microsoft SQL Server 2000是一个分布式的关系型数据库管理系统,具有客 户机 /服务器体系结构,采用了 Transact-sql 的 sql 语言在客户机与服务器间传递 客户机的请求与服务器的处理结果。众所周知, SQL Server 2000能够满足今天 的
30、商业环境要求不同类型的数据库解决方案。它一种应用广泛的数据库管理系 统,具有许多显著的优点:易用性、适合分布式组织的可伸缩性、用于决策支持 的数据仓库功能、与许多其他服务器软件紧密关联的集成性、良好的性价比等。 性能、可伸缩性及可靠性是基本要求, 而进入市场时间也非常关键。 除这些核心 企业品质外, SQL Server 2000还为您的数据管理与分析带来了灵活性,允许单位在快速变化的环境中从容响应, 从而获得竞争优势。 从数据管理和分析角度看, 将原始数据转化为商业智能和充分利用 Web 带来的机会非常重要。作为一个完 备的数据库和数据分析包, SQL Server 2000为快速开发新一代
31、企业级商业应用 程序、 为企业赢得核心竞争优势打开了胜利之门。 作为重要的基准测试可伸缩性 和速度奖的记录保持者, SQL Server 2000是一个具备完全 Web 支持的数据库产 品,提供了对可扩展标记语言 (XML的核心支持以及在 Internet 上和防火墙外进 行查询的能力。4 多功能聊天软件的设计方案4.1 聊天系统流程的分析与设计此聊天软件是采用 C/S结构,其系统流程图如图 1所示。 图 1 系统流程图使用这个聊天软件的用户必须先进行注册,在登录窗体用户单击注册按钮, 激活注册窗体。填写相关的注册信息, 提交给服务器。 服务器将注册信息提交给 数据库,并由服务器按注册顺序生成
32、一个用户 ID 号返回给注册用户,这样注册 就完成了。然后用户用注册成功的 ID 号和注册时的密码进行登录。用户在登录 窗口填写用户 ID 和用户密码,由客户端将登录信息提交给服务器,服务器根据 数据库中存储的用户信息与客户端提交的登录信息进行比较, 比较一致后, 则返 回一个登录成功地确认信息给客户端, 当客户端收到这个确认信息时, 则激活本 聊天软件的客户端主窗体。这时你要与好友进行聊天,则必须添加好友, 比如用户 2要添加用户 N 为好友,用户 2首先向用户 N 发出添加好友请求信息,用户 N 接受到用户 2的信息,并通过验证发送确认反馈信息给用户 2,并且向服务器 提交好友添加确认信息
33、, 这时服务器就会更新相应用户的好友列表中的信息。 好 友添加完成后,用户之间就可以进行彼此之间的通信,如文字聊天、视频聊天、 语音聊天、文件传输等。以上如图 1为多功能聊天软件系统的总体流程图, 其中包括了登录模块、 注 册模块、添加好友模块、服务器模块、数据库模块等。在这个多功能聊天软件系 统开发设计与实现中,作者主要负责服务器模块、数据库模块、添加好友模块、 文字聊天与文件传输功能模块的设计与实现。 下面就对数据库模块与添加好友模 块的流程和服务器模块进行了分析。4.2 数据库模块的分析与设计该聊天系统的数据库设计的目的是保存用户信息, 为用户之间的通信提供相 关的数据服务,比如在用户登
34、录时,在登录模块中输入的相关信息(用户 ID 、 密码 ,就要和数据库中已有的相关信息进行比较,如果相同就表明登录成功, 如果不一致则要重新登录。其设计思路是:首先建立一个用户信息总表, 这张表 包括每个人的详细信息,如用户名、用户 ID 、用户头像编号等,是在用户注册 时,将信息写入该用户信息总表内; 然后当一个用户注册成功后, 服务器就会自 动生成一个该用户的好友表, 该表中存放的是该用户添加的好友信息, 在登录成 功后的客户端界面的好友信息就来源于此好友表, 这样两个在线的好友之间就可 以通信了。图 2所示,为此聊天系统的数据库总体设计结构图。 图 2 数据库结构图由于聊天系统的作用是提
35、供用户之间通信, 也就是说它的实体就是用户, 所 以数据库表的关系就为用户表与用户表之间的关系。 图 3为此聊天工具的数据库 的 E-R 图,它体现了用户 1表(用户 1ID ,用户 1姓名,用户 1头像 ID 等 ,其 中“用户 1ID ”为主键;用户 2表(用户 2ID ,用户 2姓名,用户 2头像 ID 等 , 其中“用户 2ID ”为主键。他们之间的关系是 1:1关系,也就是说用户 1的好友 表只能添加一个用户 2为好友,用户 2的好友表只存在一个用户 1的 ID 号。用户 1可以添加 N 个用户为好友, 但这些好友的 ID 号信息在用户 1的好友表中是 唯一的。 图 3 E-R 图4
36、.3添加好友模块的分析与设计用户 1通过服务器查询数据库中已有的好友资料, 并向所要添加的好友发送 添加请求,用户 2接收到用户 1的请求,经过验证将消息发送给用户 1,用户 1接收到同意添加消息后, 添加用户 2位好友, 并将用户 2的信息存入到用户 1的 好友表中, 同时用户 2也将用户 1的信息存入用户 2的好友表中, 并把相关信息 提交给服务器,让服务器对数据库进行发更新。图 4为添加好友系统流程。 图 4 添加好友系统4.4 服务器模块的分析与设计该服务器的作用是对数据进行处理, 整个聊天系统依靠服务器对数据的处理 来运行, 比如登录功能、 注册功能、 添加好友功能等都是利用服务器对
37、数据的处 理来实现的,如图 5所示,为服务器运行时的状况。 图 5 服务器运行图本设计主要完成的是文字聊天、 文件传输模块,以及添加好友、服务器模块 和特殊功能模块,下面对其设计进行实现进行详细说明。5 文字聊天、文件传输模块的设计与分析5.1 文字聊天模块的分析文字聊天是聊天工具最早的信息传递方式, 用户通过打字, 将信息传递给好 友。至今为止, 文字聊天在网络聊天中是应用最为广泛的聊天方式。 其实现原理 是:通信双方通过 Socket 套结字进行文字信息的传输。用户双方通过 Socket 套 结字建立连接,并将文字信息以数据流的形式进行发送。如图 6所示, 为文字信 息流程图。 图 6 文
38、字聊天流程5.2 文字聊天模块功能具体实现文字聊天模块功能是聊天软件诞生以来, 最早实现信息传递的功能模块。 首 先双击客户端应用程序,让其程序运行。 经过登录验证后, 程序开辟一个新的线程 udpThread 来完成 udp 的监听功能,并通过调用 UdpReceiveMsg (函数来实 现对 udp 数据包的接收功能。 在由 switch 语句块根据控制字符选择相应的功能函 数实现相应的功能。关键代码如下:文件 Client.csudpThread = new Thread(new ThreadStart(UdpReceiveMsg;udpThread.Start(private void
39、 UdpReceiveMsg(udpSocket.Bind(LocalPoint;count = udpSocket.Receive(read;switch (ctrlcase "MSG": /接收信息this.SelectUser(gostr;break;case "REQ": /接收好友添加请求this.FriendRequest(gostr;break;case "AFF":/好友添加反馈信息this.FriendResqonse(gostr;break;用户双击所要发送信息的好友头像,这时就会出现一个与好友对话的窗体, 在对话
40、框的输入信息区域, 将其要给对方所发送的信息输入到该信息框内, 然后 点击发送按钮,就会触发一个 sender 事件,从而调用 b_send_Click(object sender, System.EventArgs e 事件处理函数。 该函数先对用户输入数据进行判断, 如果输 入的传输数据大于一定的值(1024Byte ,则显示发送信息过长的提示信息,如 果输入的字符数据正常, 则调用 udpSocketSend.SendTo(Bsendinfo, remoteEP方法 将控制符 "MSG" 连接上用户自身 ID 及用户输入的文字信息发送给好友。关键代码如下:文件 Dia
41、logChat.csprivate void b_send_Click(object sender, System.EventArgs eIPEndPoint remoteEP = new IPEndPoint(remoteIP ,2003;if(tb_send.TextLength>=1024MessageBox.Show ("发送消息过长,请适当删减后再试 "elseudpSocketSend.SendTo(Bsendinfo, remoteEP ;udpSocketSend.Close(;tb_record.AppendText(record;/将焦点置于最新消
42、息显示之处tb_record.Focus(;tb_send.Text=null;当好友的客户端通过 UdpReceiveMsg (的接收函数接收到了数据时,先通 过控制符判断是否是 ” MSG ” ,如果是,则说明是好友发送的普通信息。再调用 SelectUser(string str 用户选择函数,根据字符串中的用户 ID 号找到发送消息的 用户 ID 。 然后将聊天信息交给该好友的 DialogChat 窗体的 MSG 属性, 这时就会 触发一个 sender 事件, 表示收到该好友的信息, 从而, 就能将信息显示在相应好 友的聊天对话框中了。关键代码如下:文件 Client.cspriv
43、ate void SelectUser(string strfor (int i = 0; i < this.OnLine; i+if (uctrlid = ucARRi.UserIducARRi.Msg = msg;文件 DialogChat.csprivate void Msg_RecEvent(object sender, MyEventArgs etb_record.BeginInvoke(new textBox(TextBoxRec;private void TextBoxRec(switch (msg default:tb_record.AppendText(record;/
44、将焦点置于最新消息显示之处tb_record.Focus(;break;5.3 文件传输模块的分析人们在互联网上聊天时,需要传递一些如图片、文件、资料等东西,这时聊 天工具已有的文字聊天已经不能满足人们的这一需求,所以为方便用户的使用, 聊天工具给用户提供了文件传输模块, 可以让用户在文字聊天的同时, 给对方发 送一些图片、文件等信息。在功能上是聊天工具更为完善。其实现原理是:首先 将外储中的文件以文件流的形式提取到缓存中,然后通信双方通过 Socket 套结 字建立连接,并将缓存中存放的文件流进行发送。用户 1向用户 2发送文件时, 先发送请求信息给用户 2,用户 2接收到用户 1的请求信息
45、后,对用户 1发送回 应信息, 如果用户 2同意接收文件请求,则开始文件传输, 如果用户 2不同意接 收文件请求,则停止传输。其流程结构如图 7所示。 图 7 文件传输流程5.4 文件传输模块功能具体实现文件传输是随着互联网应用技术的发展, 在聊天软件中产生的一个可以相互 之间进行发送文件的新功能模块, 它的实现满足了现今用户的需求。 首先发送方 在聊天对话框中点击文件传输按钮 bt_file,就会触发 bt_file_Click(object sender, EventArgs e 事件处理函数, 向对方发送一个传送文件的请求。 关键代码如下:文件 DialogChat.csprivate
46、void bt_file_Click(object sender, EventArgs eOFDialog = new OpenFileDialog(;OFDialog.ShowDialog(;filepath = OFDialog.FileName;FileInfo fileinfo = new FileInfo(filepath;filesize = fileinfo.Length;string filename = fileinfo.Name;sendinfo = "RFS" + this.my_id + "" + myip + "&qu
47、ot; + filesize+"" +filename ; udpSocketSend.SendTo(Bsendinfo, remoteEP;当接收方接收到控制字符 "RFS" 后,就调用 FileRequest(string str 好友请求 传送文件函数, 得知是哪位好友发送的文件请求。 这时通过 FileRec 属性来触发 UserCtrl_FileEvent(object sender, MyEventArgs e 事 件 处 理 函 数 , 通 过 FileReceiveForm FRForm = new FileReceiveForm ( 语
48、句,将文件接收窗体实例 化, 用 FRForm.ShowDialog( 将窗体显示出来, 该文件接收窗口有查看资料、 接 收、拒绝三个按钮。如果用户同意接收文件请求,单击接收按钮,就构造字符串 sendinfo = "RSQACC" + myid 回应发送端,并开辟了新的文件接收线程Thread fileRec = new Thread(new ThreadStart(FileReceive, 等待发送方发送文件。 如果选择拒绝接收文件, 则构造字符串 sendinfo = "RSQREJ"回应发送方, 以结 束文件传送过程。关键代码如下:文件 File
49、ReceiveForm.csstring sendinfo = "RSQACC" + myid;udpSocketSend.SendTo(Bsendinfo, remoteEP;string sendinfo = "RSQREJ"udpSocketSend.SendTo(Bsendinfo, remoteEP;发送端收到接收端的回应, 判断接收端的选择并做相应操作, 如果对方接受 请求则开始发送文件,若决绝则结束文件传送。关键代码如下:文件 FileReceiveForm.csTcpListener tcpListener = new TcpListener(2004;tcpListener.Start(;TcpClient tcpCli
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年新教材高中地理第四章地球上的水第三节海洋与人类课后篇巩固提升含解析湘教版必修第一册
- 2024-2025学年新教材高中历史第三单元辽宋夏金多民族政权的并立与元朝的统一第10课辽夏金元的统治学案新人教版必修中外历史纲要上
- 《江城子·乙卯正月二十日夜记梦》(教学设计)-2024-2025学年高二语文选择性必修上册同步备课系列(统编版2019)
- 七年级上册数学知识点+典型例题+全册单元测试题+期末测试卷及详细答案【人教版】
- 《认识其他动物的卵》教学设计-2023-2024学年科学三年级下册教科版
- 8 安全记心上 教学设计-2024-2025学年道德与法治三年级上册统编版
- 电力设施应急处理与维护计划
- 小学信息技术六年级下册《 第2课 操控键盘比车速》教学设计
- 综合能源站项目实施计划
- 会计基础会计要素说课
- 《教育强国建设规划纲要(2024-2035年)》全文
- 中国服装零售行业发展环境、市场运行格局及前景研究报告-智研咨询(2025版)
- 临床提高脓毒性休克患者1h集束化措施落实率PDCA品管圈
- DB53∕T 1269-2024 改性磷石膏用于矿山废弃地生态修复回填技术规范
- JBT 14727-2023 滚动轴承 零件黑色氧化处理 技术规范 (正式版)
- 思维第一:全面提升学习力
- 《铁路桥梁检定评估工作规则》铁运2004第42号
- 危险化学品建设项目安全评价流程.doc
- 2021年云南省中考数学试题及答案(清晰版)
- 资产负债表模板
- 蒸汽吹扫吹管系数计算
评论
0/150
提交评论