189.A网络即时通信系统的设计 毕业设计说明书_第1页
189.A网络即时通信系统的设计 毕业设计说明书_第2页
189.A网络即时通信系统的设计 毕业设计说明书_第3页
189.A网络即时通信系统的设计 毕业设计说明书_第4页
189.A网络即时通信系统的设计 毕业设计说明书_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

1、 本科毕业设计说明书本科毕业设计说明书 本本文文源源码码索索取取,请请联联系系q qq q: 6 68 86 66 61 15 50 08 8 二二 一一 年年 六六 月月 学校代码学校代码: xxxxxx 学学 号号: : xxxxxx 题题 目目: 网络即时通信系统的设计网络即时通信系统的设计 学学生生姓姓名名 : x x x x x x 学学 院院 : 信信 息息 工工 程程 学学 院院 系系 别别: 计计 算算 机机 系系 专专 业业: 软软 件件 工工 程程 班班 级级: 软软 件件0 0 6 6 指指导导教教师师 : x xx xx x 讲讲师师 xxx 工业大学本科毕业设计说明书

2、 摘 要 随着科学技术的迅速提高,计算机网络得到了飞速的发展,而各种基于网络的 应用程序也随之诞生,比如基于互联网的信息发布,通信,数据共享等等。局域网 技术作为人们日常生活中必不可少的部分同样得到了广泛的应用,人们通过局域网 连接 internet进行数据传输及交换。因此开发一个局域网的即时通信工具是非常 有必要的。 本文围绕这个中心并进行了更为合理的设计在windows平台上进行了实现。将客 户端与服务端分开,用udp与tcp/ip协议实现不同的传输任务,还运用了套接字技术。 能够满足一般用户最基本的要求,特点是简单方便、功能齐全、拓展性强。 本即时通信系统采用模块化程序设计方法,基于c/

3、s架构,运用文件形式存储。 本系统充分利用了visual c+开发工具,具备用户的登录、申请、发送消息、发送 文件、查看用户在离线等功能,可以实现用户信息管理,方便了用户之间信息的沟 通。 关键词关键词: 即时通信; c/s; udp; tcp/ip; 套接字 xxx 工业大学本科毕业设计说明书 abstract with the rapid increase of science and technology, computer network has made rapid development, and a variety of web-based applications have c

4、ome about, such as internet- based information dissemination, communication, data sharing, etc. lan technology as an essential part of daily life, are also widely used local area network to connect people through the internet for data transfer and exchange. therefore the development of a lan instant

5、 messaging tool is necessary. this text has realized on windows platform more rational design around this centre. separate customer end from end of service, realize different transmission tasks with udp and tcp/ip agreement, have also used set to windows sockets technology. can meet the general user

6、s most basic requirement, it is simple and convenient, multiple functional that the characteristic is, the expanding is strong. the instant messaging system uses the modular programming method, based on c/s architecture, the use of files stored. the system makes full use of visual c+ development too

7、l, have the user login, application, send messages, send files, view the users and other functions, can realize the user information management, and convenient for users to communicate information between . keywords: instant messaging; c / s; udp; tcp / ip ;windows sockets xxx 工业大学本科毕业设计说明书 目 录 引 言.

8、1 第一章 开发工具及系统架构简介.3 1.1 c/s 结构简介.3 1.2 socket技术简介 .3 1.3 csocket.4 1.4 套接字简介.4 1.4.1 连接方式.4 1.4.2 主要参数.5 1.5 tcp/ip 简介.5 1.6 udp 简介.6 1.7 即时通信系统简介.7 1.7.1 系统的网络环境.7 1.7.2 数据存储系统.7 1.7.3 网络协议.7 第二章 系统分析与设计.8 2.1 即时通信系统简介.8 2.2 即时通信系统作用.8 2.3 网络即时通信系统需求分析.9 2.4 环境拓扑.10 2.5 开发与测试.10 第三章 系统的实现.11 3.1 程序

9、设计目的.11 3.2 程序有关连接及端口信息.12 3.3 用户使用说明.13 3.4 其他部分代码.17 3.5 其他算法的改进方法.21 第四章 即时通信系统的测试报告.22 xxx 工业大学本科毕业设计说明书 4.1 测试结论.22 4.2 测试环境.22 4.3 功能测试.22 4.4 测试结果.27 总 结.28 参考文献.30 谢 辞.31 xxx 工业大学本科毕业设计说明书 0 引引 言言 1.项目背景 随着移动互联网的发展,互联网即时通信也在向移动化扩张。目前,微软、 aol、yahoo、 、ucstar等重要即时通信提供商都提供通过手机接入互联网即时 通信的业务,用户可以通

10、过手机与其他已经安装了相应客户端软件的手机或电脑 收发消息。 产品最早的创始人是三个以色列青年,是他们在 1996年做出来的,取名叫 icq。1998年当icq注册用户数达到 1200万时,被aol看中,以2.87亿美元的天 价买走。目前 icq有1亿多用户,主要市场在美洲和欧洲,已成为世界上最大的 即时通信系统。 现在国内的即时通信工具按照使用对象分为两类:一类是个人im,如: qq。qq的前身oicq在1999年2月第一次推出,目前几乎接近垄断中国在线即时 通讯软件市场;另一类是企业用 im,简称eim,如:e话通,uc,ec企业即时 通信软件,ucstar、商务通等。 即时通信最初是由

11、aol、微软、雅虎、腾讯等独立于电信运营商的即时通信 服务商提供的。但随着其功能日益丰富、应用日益广泛,特别是即时通信增强软 件的某些功能如 ip电话等,已经在分流和替代传统的电信业务,使得电信运营商 不得不采取措施应对这种挑战。 2006年6月,中国移动已经推出了自己的即时通 信工具fetion,中国联通也将推出即时通讯工具 “超信”,但由于进入市场较 晚,其用户规模和品牌知名度还比不上原有的即时通信服务提供商。 2.项目意义 随着网络的发展,越来越多的人们开始以电子通信的方式实现交流的时候,便 形成了一个提供即时通信服务的经营和市场环境,这是一个全新的竞争激烈的国际 化市场。为适应这种新的

12、经营环境,应对来自全球竞争者的挑战。 互联网即时通信有点像手机无线通信:它们最初都局限在小圈子内作为少数 人的玩物而屡遭诟病。不过,它们注定要超越传统通信方式而成为主流通信手段。 如今,即使通信的飞速发展与 普及令所有预期者大跌眼镜。不过,快速普及、 跻身主流还只是即时通信发展的第一步,接下来要走的也许是更重要的一步统一 标准、决战市场。 即时通信(im)工具大浪淘沙,曾几何时,当初风风火火的一大批即时通信 xxx 工业大学本科毕业设计说明书 1 工具,由于各操方言,彼此不通,诸侯 割据市场,如今大多数已经折戟沉沙。 如今 im 市场天下一统,基本市场格局已 经定型。在全球, msn mess

13、enger 已 成为即时通信市场当之无愧的王者,美国 在线 aol 的 instant messenger(以 及被其收购旗下的即时通信鼻祖 icq)元气大伤,沦落到要依傍法律为武器, 同中国的 qq 争夺名分的地步; yahoo messenger 偏安一隅。 msn 携微软巨无 霸强大的 windows 操作软件市场优势,逐渐成为桌面pc 的标准配置,注册用 户数量超过了 1.1 亿户。 3. 性能设计 在最近几年中计算机越来越多的活跃在社会的各个领域:管理、网络、计算、 控制、多媒体等,并且在某些方面成为不可缺少的工具,尤其在管理方面,管理软 件的出现使大量烦琐复杂的问题变得简单易行,本

14、软件的设计考虑以上因素制作, 本着以最通俗的语言,最简单的操作,最快捷的设计方案而开发制作而成,可以很 好的对现有的商品进行规范,高效的管理,本系统主要运用了 visual c+ 6.0 开发 工具开发而成,该工具具有卓越的性能、简洁规范的用户界面、可视化的编程环境、 简单易懂的 c+编程语言,用较少的代码可以实现大量繁琐复杂问题的功能,是初 级程序开发人员的理想选择。 xxx 工业大学本科毕业设计说明书 2 第一章 开发工具及系统架构简介 1.1 c/s 结构简介 c/s(client/server)结构,即大家熟知的客户机和服务器结构。它是软件系 统体系结构,通过它可以充分利用两端硬件环境

15、的优势,将任务合理分配到 client 端和 server 端来实现,降低了系统的通讯开销。目前大多数应用软件系统 都是 client/server 形式的两层结构,由于现在的软件应用系统正在向分布式的 web 应用发展, web 和 client/server 应用都可以进行同样的业务处理,应用不 同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应 用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应 用系统的发展方向。 传统的 cs 体系结构虽然采用的是开放模式,但这只是系统开发一级的开 放性,在特定的应用中无论是 client 端还是 server

16、端都还需要特定的软件支持。 由于没能提供用户真正期望的开放环境, c/s 结构的软件需要针对不同的操作系 统系统开发不同版本的软件,加之产品的更新换代十分快,已经很难适应百台电 脑以上局域网用户同时使用 ,而且代价高,效率低 。 1.2 socket 技术简介 socket 的英文原义是 “孔”或“插座”。在这里作为 4bds unix 的进程通信机 制,取后一种意思。 socket 非常类似于电话插座。以一个国家级电话网为例。电 话的通话双方相当于相互通信的 2 个进程,区号是它的网络地址;区内一个单 位的交换机相当于一台主机,主机分配给每个用户的局内号码相当于socket 号。 任何用户在

17、通话之前,首先要占有一部电话机,相当于申请一个socket;同时 要知道对方的号码,相当于对方有一个固定的socket。然后向对方拨号呼叫, 相当于发出连接请求 (假如对方不在同一区内,还要拨对方区号,相当于给出网 络地址)。对方假如在场并空闲 (相当于通信的另一主机开机且可以接受连接请求 ), 拿起电话话筒,双方就可以正式通话,相当于连接成功。双方通话的过程,是一 方向电话机发出信号和对方从电话机接收信号的过程,相当于向socket 发送数 xxx 工业大学本科毕业设计说明书 3 据和从 socket 接收数据。通话结束后,一方挂起电话机相当于关闭socket,撤 消连接。 1.3 csoc

18、ket csocket 是 mfc 在 casyncsocket 基础上派生的一个同步阻塞 socket 的封 装类。它是如何又把 casyncsocket 变成同步的,而且还能响应同样的socket 事件呢? 其实很简单, csocket 在 connect()返回 wsae would block 错误时,不是在 onconnect(),onreceive()这些事件终端函数里去等待。你先必须明白socket 事件是如何到达这些事件函数里的。这些事件处理函数是csocket wnd 窗口对 象回调的,而窗口对象收到来自 socket 的事件,又是靠线程消息队列分发过来 的。总之,socke

19、t 事件首先是作为一个消息发给 csocketwnd 窗口对象,这个 消息肯定需要经过线程消息队列的分发,最终csocketwnd 窗口对象收到这些 消息就调用相应的回调函数 (onconnect()等)。 所以,csocket 在调用 connect()之后,如果返回一个 wsae would block 错 误时,它马上调用一个用于提取消息的函数pumpmessage(),就是从当前线程 的消息队列里取 得关心的消息。 1.4 套接字简介 套接字,简单的说就是通信的两方的一种约定,用套接字中的相关函数来完 成通信过程。 .1 连接方式连接方式 应用层通过传输层进行数据通信时

20、, tcp 和 udp 会遇到同时为多个应用程序 进程提供并发服务的问题。多个 tcp 连接或多个应用程序进程可能需要通过同 一个 tcp 协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机 操作系统为应用程序与 tcpip 协议交互提供了称为套接字 (socket)的接口。 xxx 工业大学本科毕业设计说明书 4 .2 主要参数主要参数 区分不同应用程序进程间的网络通信和连接,主要有3 个参数:通信的目 的 ip 地址、使用的传输层协议 (tcp 或 udp)和使用的端口号。 socket 原意是 “插座”。通过将这 3 个参数结合起来,与一个 “插座”socke

21、t 绑定,应用层就可 以和传输层通过套接字接口,区分来自不同应用程序进程或网络连接的通信,实 现数据传输的并发服务。 socket 可以看成在两个程序进行通讯连接中的一个端点,是连接应用程序和 网络驱动程序的桥梁, socket 在应用程序中创建,通过绑定与网络驱动建立关系。 此后,应用程序送给 socket 的数据,由 socket 交网络驱动程序向网络上发送出 去。计算机从网络上收到与该 socket 绑定 ip 地址和端口号相关的数据后,由网 络驱动程序交给 socket,应用程序便可从该 socket 中提取接收到得数据,网络 应用程序就是这样通过 socket 进行数据的发送与接收的

22、。 1.5 tcp/ip 简介 tcp/ip 是供已连接因特网的计算机进行通信的通信协议。 tcp/ip 指传输控制协议 /网际协议 (transmission control protocol / internet protocol)。 tcp/ip 定义了电子设备(比如计算机)如何连入因特网,以及数据如何在 它们之间传输的标准。 tcp/ip(传输控制协议 /网际协议)是互联网中的基本通信语言或协议。在 私网中,它也被用作通信协议。当你直接网络连接时,你的计算机应提供一个 tcp/ip程序的副本,此时接收你所发送的信息的计算机也应有一个tcp/ip程序 的副本。 tcp/ip是一个两层的程

23、序。高层为传输控制协议,它负责聚集信息或把文件 拆分成更小的包。这些包通过网络传送到接收端的 tcp层,接收端的 tcp层把包 还原为原始文件。低层是网际协议,它处理每个包的地址部分,使这些包正确的 到达目的地。网络上的网关计算机根据信息的地址来进行路由选择。即使来自同 一文件的分包路由也有可能不同,但最后会在目的地汇合。 tcp/ip使用客户 xxx 工业大学本科毕业设计说明书 5 端/服务器模式进行通信。 tcp/ip通信是点对点的,意思是通信是网络中的一台 主机与另一台主机之间的。 tcp/ip与上层应用程序之间可以说是 “没有国籍的 ”, 因为每个客户请求都被看做是与上一个请求无关的。

24、正是它们之间的“无国籍的” 释放了网络路径,才是每个人都可以连续不断的使用网络。 许多用户熟悉使用 tcp/ip协议的高层应用协议。包括 万维网的超文本传输协议( http) ,文件传 输协议(ftp) ,远程网络访问协议 (telnet)和简单邮件传输协议( smtp) 。这 些协议通常和 tcp/ip协议打包在一起。 使用模拟电话调制解调器连接网络的个 人电脑通常是使用串行线路接口协议( slip)和点对点协议( p2p) 。这些协议 压缩ip包后通过拨号电话线发送到对方的调制解调器中。 与tcp/ip协议相关 的协议还包括用户数据报协议( udp) ,它代替tcp/ip协议来达到特殊的目

25、的。 其他协议是网络主机用来交换路由信息的,包括 internet控制信息协议 (icmp) ,内部网关协议( igp) ,外部网关协议( egp) ,边界网关协议( bgp) 。 1.6 udp 简介 udp是user datagram protocol的简称, 中文名是用户数据包协议,是 osi 参 考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。它 是ietf rfc 768是udp的正式规范。 udp 报头由 4 个域组成,其中每个域各占用 2 个字节,具体如下: 源端口 号、目标端口号 、数据报长度、校验值。 udp 协议使用端口号为不同的应用保留其各自的数据传

26、输通道。udp 和 tcp 协议正是采用这一机制实现对同一时刻内多项应用同时发送和接收数据的支持。 数据发送一方(可以是客户端或服务器端)将udp 数据报通过源端口发送出去, 而数据接收一方则通过目标端口接收数据。有的网络应用只能使用预先为其预留 或注册的静态端口;而另外一些网络应用则可以使用未被注册的动态端口。因为 udp 报头使用两个字节存放端口号,所以端口号的有效范围是从0 到 65535。 一般来说,大于 49151 的端口号都代表动态端口。 数据报的长度是指包括报头和数据部分在内的总字节数。因为报头的长度是 固定的,所以该域主要被用来计算可变长度的数据部分(又称为数据负载) 。 数据

27、报的最大长度根据操作环境的不同而各异。从理论上说,包含报头在内的数 xxx 工业大学本科毕业设计说明书 6 据报的最大长度为 65535 字节。不过,一些实际应用往往会限制数据报的大小, 有时会降低到 8192 字节。 udp 协议使用报头中的校验值来保证数据的安全。校验值首先在数据发送方 通过特殊的算法计算得出,在传递到接收方之后,还需要再重新计算。如果某个 数据报在传输过程中被第三方篡改或者由于线路噪音等原因受到损坏,发送和接 收方的校验计算值将不会相符,由此udp 协议可以检测是否出错。这与 tcp 协 议是不同的,后者要求必须具有校验值。 许多链路层协议都提供错误检查,包括流行的以太网

28、协议,也许想知道为什 么udp也要提供检查和。其原因是链路层以下的协议在源端和终端之间的某些通 道可能不提供错误检测。虽然 udp提供有错误检测,但检测到错误时, udp不做 错误校正,只是简单地把损坏的消息段扔掉,或者给应用程序提供警告信息。 1.7 即时通信系统简介 .1 系统的网络环境系统的网络环境 网络结构:服务器(文件服务器、应用服务器) 、客户端、远程访问。即时通信 系统是运行在服务器上的应用系统,最低的运行环境需要一台服务器。系统需要安 装 visual c+开发环境。 客户端只需要安装 windows 98 以上的版本。不需要在客户端安装专门的软件。 1.7.2

29、1.7.2 数据存储系统数据存储系统 数据存储系统实现数据信息的存储、管理,并为各种应用提供数据访问、存储 等服务。本即时通信系统系统设计的信息包含少量的非结构化信息数据。小型个人 数据存储系统(文件存储系统)基本符合本系统的要求,故选择文件存储作为系统 的数据存储系统。 .3 网络协议网络协议 网络协议采用 tcp/ip。通过 tcp/ip 可以十分方便地将异种机型、异种操作系 统的计算机系统构成单一协议的异种机互联网络-tcp/ip 网络,事实上 tcp/ip 也是 xxx 工业大学本科毕业设计说明书 7 现在网络协议中一种通行的标准。 xxx 工业大学本科毕业设计说明书

30、8 第二章 系统分析与设计 2.1 即时通信系统简介 即时通信(im)是指能够即时发送和接收互联网消息等的业务 。自 1998 年面 世以来,特别是近几年的迅速发展,即时通信的功能日益丰富,逐渐集成了电子 邮件、博客、音乐、电视、游戏和搜索等多种功能。即时通信不再是一个单纯的 聊天工具,它已经发展成集交流、资讯、娱乐、搜索、电子商务、办公协作和企 业客户服务等为一体的综合化信息平台。 2.2 即时通信系统作用 即时通讯工具最初虽为聊天而诞生,但其作用早已超出了聊天的范畴,随着 企业即时通讯工具的出现,即时信息在网络营销中将发挥更大的作用。 随着网络信息化的高速发展,越来越多的大中小企业选择做网

31、络推广,但目 前各大搜索引擎或门户只能给企业网站带来流量,没有更进一步的接洽方式,把 流量转变成真正的客户,就好比商场里没有营业员,来到商场里的顾客因为无人 招呼而坐失商机。企业做了大量的推广因作用不大,而逐步降低了对网络营销的 信心,这不管对企业或是对网络服务提供商来讲都面临着尴尬的境地。企业迫切 需要与来访客户沟通、访客需要即时咨询企业相关信息,让我们的网站会说话, 让访客与企业之间即时交流互动起来。已经成为网络营销时代亟待解决的难题。 企业做了大量的网络推广,为的是把网民也就是潜在客户带到自己的网站宣 传企业,间接或直接的销售自己的产品。但通常企业做了大量网络推广效果不明 显或是能不能让

32、企业已有的推广效果更加显著呢?我们来看看网民的习惯:我们 浏览的新网站, 90%以上是通过搜索引擎来发现的,于是企业就做了大量的关键 词推广,当然网站的流量也迅速增加。但访客在浏览到有意向的产品的时候却没 有和企业联系,这是为什么呢?因为我们的网站上只有电子邮件和电话,有的居 然连电话也没有。访客通常会认为邮件发出去后不能被对方及时发现或是被当成 垃圾邮件删除,就算是被相关人员发现什么时间回复你呢?这也是个未知数。我 们有了咨询的需要后就立即点击在线洽谈和企业相关人员即时交流互动其结果是 不是就大不一样了呢?回答是肯定的!因此每个企业尤其是做了推广的企业网站 xxx 工业大学本科毕业设计说明书

33、 9 装载即时通讯产品来发掘潜在客户、提高销量、领先竞争对手已刻不容缓。 现在,大多数顾客希望在访问网站时获得关于顾客服务的询问,甚至为数不 少的顾客在寻求获得即时满意的服务,于是,各种即时通讯软件正好作为理想 的在线顾客服务工具。目前已经有6%的网站使用 im 作为顾客服务工具,有 45%的消费者对此感到满意,这种即时服务已经成为一种不可忽视而且是最受欢 迎的在线顾客服务手段之一,应该引起重视,尤其是如网上零售、网上保险等对 顾客服务要求较高的领域。 研究表明,实时即时通讯服务对于网上销售中提升订单成功率有很大帮助, 如果使用即时信息合理地开展顾客服务,顾客放弃购物车的比例可以降低 20%,

34、顾客放弃购物车是网上销售中的一种常见现象,与顾客在超市的购买不同, 在网上购物时放弃购物车的比例很高,是因为在顾客需要询问时销售商无法给出 解答所造成的。 为了解决减少顾客放弃购物车的问题,我们可以对网上消费者的购物行为进 一步分析:用户在购买前已经有一定的购买计划,可能只希望购买自己期望的商 品,对于无法确定是否适合自己的商品可能会先放入购物车,而最终在去收银台 付款之前放弃这次购物;或者,当看到一件新产品或者计划之外的产品时没有朋 友或者导购员可以商量和咨询,因此往往会犹豫不决。其实,这种种现象背后都 包含着同样的问题:网站缺乏实时交互性,包括消费者与网站之间以及购买同类 商品的顾客之间的

35、交互。即时信息服务正好可以在这方面发挥其优越性,从技术 上说应该不存在多大障碍。利用在线客服给顾客必要的介绍,这样一定会有助于 用户的购买决策,提高订单成功率。 2.3 网络即时通信系统需求分析 随着网络用户越来越多,虽然计算机网络的速度一直在迅速发展,但有些时候 还不大尽如人意。所以开发一个在局域网内具有聊天功能和文件传输功能的小软件 很有必要的。于是本人有 c+开发了一个小的软件可以实现文件传输和信息通信功 能。 本即时通信系统系统为一个 cs 的电子商务门户网站,可视其为一个小型聊天 工具,其内容主要是实现即时消息与稳健的发送。 主要完成以下功能: xxx 工业大学本科毕业设计说明书 1

36、0 用户:分为普通用户和管理员,实现普通用户登陆、用户注册、发送消息与文 件、管理员实现对服务器的管理。 2.4 环境拓扑 图 3-1 环境拓扑图 运行环境为在局域网内架设一 myqq 服务器。有多个客户端可以向服务器申请 号码。登录服务器可与在线用户聊天,文件传输的功能,如用户 1 和用户 2 可以相 互传输文件和发送信息。 2.5 开发与测试 1,设计服务器端应用程序 这部分主要为让服务器打开一定的端口进行监听用户信息请求,对用户登录请 求进行用户名密码的验证。并做出相应的反映。如果验证成功,则向客户端将其他 用户的信息(包括状态,ip,用户名等)发给用户。否则提示用户。对于申请号码 的请

37、求,核对用户信息后将用户信息保存。并把申请成功的号码发给用户。 可以向所有用户发送信息,及做简单的远程控制的功能。 2设计客户端应用程序: 能够向指定服务器发送连接请求。登录成功后可以接收其他用户发送的信息。 并可以向其他用户发送信息。另外可以向在线用户传送文件功能。 xxx 工业大学本科毕业设计说明书 11 第三章 系统的实现 本程序设计分为服务器应用程序及客户机应用程序部分,采用 socket 套接字库 网络编程。 (udp)和(tcp/ip)相结合的连接方式,及解决了数据传输的时效性又 能保证数据在传输的过程中不会丢失。另外程序采用多个线程来避免程序阻塞。具 体设计思路及部分代码如下。

38、3.1 程序设计目的 1,练习使用套接字进行网络编程。 2,练习使用自定义消息。 3,练习多线程方面的编程思想。 4,练习使用各种控件。 图 3-1 服务器与客户端通信方式模型图 说明: 1,服务器首先启动并在 6020 端口进行监听,等待连接。 2,客户端发出连接请求,并发出用户信息。 3,服务器验证用户信息。返回结果给客户。 xxx 工业大学本科毕业设计说明书 12 4,如果验证成功将好友信息发给客户并通知启动聊天信息接收线程。 5,应用程序启动成功。 图 3-2 文件传输流程图 说明: 1,用户 1 向用户 2 发出传送文件请求。并发送文件相关信息等待用户 2 回应。 2,用户 2 收到

39、请求,回复用户 1 如果同意接收启动文件接受线程统治用户 1 可以发 送文件了。否则通知用户 1 不接受。 3,用户 1 收到回复后做相应的动作。 4,文件开始传送。 3.2 程序有关连接及端口信息 1:(udp)连接部分: 服务器监听端口 6020 作用:接收客户机发送登录和申请号码等数据 用户信息发送接收端口 6000 客户机接收服务器发送身份验证信息 6030 xxx 工业大学本科毕业设计说明书 13 2:(tcp/ip)连接/部分 端口号:4000 作用 1:接收好友信息 2:服务器控制 dos :+命令 启动网页:/id cstring name;/姓名 uint code;/密码

40、bool isonline;/状态 int friendid10;/好友 id(保留服务器尚不支持) cstring ip;/ip 地址 ; 2,在 cqqclientdlg 类中加入成员函数 cqqclientdlg:initsocket()(功能初试化套 接字和找到本机 ip 地址)函数实现如下 bool cqqclientdlg:initsocket() m_listensocket=socket(af_inet,sock_dgram,0); if(m_listensocket=invalid_socket) messagebox(接收套接字创建失败!); return false; c

41、har hostname50; int result; result=gethostname(hostname,50); if(result!=0) messagebox(主机查找错误!,error!,mb_ok); return false; hostent* hst=null; cstring strtemp; struct in_addr ia; xxx 工业大学本科毕业设计说明书 19 cstring m_strip; m_strip=; hst = gethostbyname(lpctstr)hostname); for(int i=0;hst-h_addr_listi;i+) me

42、mcpy( strtemp.format(%sn,inet_ntoa(ia); m_strip+=strtemp; sockaddr_in sevaddr; sevaddr.sin_addr=ia;/s_un.s_addr=htonl(inaddr_any); sevaddr.sin_family=af_inet; sevaddr.sin_port=htons(6000); m_addrsev.sin_addr=ia; addrmsgsend.sin_addr=ia;/.s_un.s_addr=htonl(dlg1.ip); addrmsgsend.sin_family=af_inet; ad

43、drmsgsend.sin_port=htons(6000); result=bind(m_listensocket,(sockaddr*) if(result=socket_error) messagebox(套节字帮定失败!); closesocket(m_listensocket); return false; return true; 3,增加 timer 消息(作用定时向在线用户发送当前所有在先用户检测用户是否在 线) void cchatdlg:ontimer(uint nidevent) xxx 工业大学本科毕业设计说明书 20 cstring temp; int j; m_da

44、tastr.empty(); m_datastr.format(%d*,usernum); for (j=0;jusernum;j+) temp.format(%d%d%s%d%s#,pfrienddataj.code,pfrienddataj.id,pfrie nddataj.name,pfrienddataj.isonline,pfrienddataj.ip); m_datastr+=temp; int socketresult,i; for(i=0;iusernum;i+) if(pfrienddatai.isonline=1) socketresult=send(pfrienddata

45、i.m_socket,m_datastr,m_datastr.getlength(),0); if(socketresult=socket_error) pfrienddatai.isonline=0; closesocket(pfrienddatai.m_socket); pfrienddatai.m_socket=socket(af_inet,sock_stream,0); pfrienddatai.ip=未知 ip; cstring disptemp; m_onlinenum=0; for(j=0;jusernum;j+) m_list.deleteitem(0); for(j=0;ju

46、sernum;j+) xxx 工业大学本科毕业设计说明书 21 disptemp.format(%d,pfrienddataj.id); m_list.insertitem(j,disptemp); disptemp.format(%s,pfrienddataj.name); m_list.setitemtext(j,1,disptemp); disptemp.format(%d,pfrienddataj.code); m_list.setitemtext(j,2,disptemp); disptemp.format(%s,pfrienddataj.ip); m_list.setitemtex

47、t(j,3,disptemp); if(pfrienddataj.isonline=1) disptemp=在线; m_onlinenum+; else disptemp=离线; m_list.setitemtext(j,4,disptemp); m_usernum=usernum; updatedata(false); cdialog:ontimer(nidevent); 3.5 其他算法的改进方法 当用户增多的时候,可能会对服务器造成一定的压力,甚至一台机器无法承受 的。 我们可以采用多台服务器的方法来实现负载平衡,具体方法为多台服务器使用一个 数据库!不同区域的用户向不同的服务器发送请求

48、。 xxx 工业大学本科毕业设计说明书 22 第四章 即时通信系统的测试报告 4.1 测试结论 本软件能够实现在局域网内类似 ficq 的聊天工具,方便的进行信息传递同时具 有文件传输的能力。客户端可以向服务器申请号码,实现用户登录验证。同时可以 向用户群发信息,和简单的命令控制等功能。 4.2 测试环境 3 台以上以下配置的 pc 机 表 4-1 环境配置表 硬件环境处理器:p4 2.4 ghz 内存:512mb ddr 硬盘:40g 网卡:10/100 自适应 软件环境windows 2000 server sp4 网络环境局域网 4.3 功能测试 1服务器启动功能测试 图 4-1 服务器

49、启动界面截图 xxx 工业大学本科毕业设计说明书 23 2申请号码功能测试 图 4-2 申请号码成功界面截图 图 4-3 申请号码失败界面截图 3,用户登录功能测试 图 4-4 用户登录成功界面截图 图 4-5 用户登录失败界面截图 xxx 工业大学本科毕业设计说明书 24 4,发送信息功能测试 图 4-6 发送信息成功界面截图 图 4-7 发送信息失败界面截图 5,接收信息功能测试 图 4-8 回复信息界面截图 6文件发送功能测试 xxx 工业大学本科毕业设计说明书 25 图 4-9 发送文件成功界面截图 图 4-10 发送文件失败界面截图 图 4-11 接收文件界面截图 xxx 工业大学本

50、科毕业设计说明书 26 图 4-12 接受者接收文件截图 图 4-13 发送文件成功截图 7.系统信息发送功能测试 图 4-14 发送系统消息截图 xxx 工业大学本科毕业设计说明书 27 图 4-15 服务器发送消息成功截图 4.4 测试结果 按照相应的顺序对程序功能进行逐个测试。程序功能都已达到相应的效果,能 够实现信息和文件的传输功能。 程序已经通过了测试,可放心使用。 xxx 工业大学本科毕业设计说明书 28 总 结 随着网络用户越来越多,虽然计算机网络的速度一直在迅速发展,但有些时候 还不大尽如人意。所以开发一个在局域网内具有聊天功能和文件传输功能的小软件 很有必要的。于是本人有 c

51、+开发了一个小的软件可以实现文件传输和信息通信功 能。 1. 系统的功能特色 本系统界面友好,操作简单,是一款小型的即时通信系统软件。该系统分为两 个子系统:后台服务器系统和前台客户端系统。 后台服务器系统实现用户的管理,能查看用户当前的状态,向当前在线用户发 送系统公告信息能自动获取本机 ip 地址。 前台客户端系统实现用户注册、登录、发送消息,发送文件等功能;能查看好 友的当前状态。 2. 系统的不足与改进方案 由于时间比较仓促,本系统还有待完善。应该从美观、功能和技术三个方面做 重点改进。在美观方面由于个人审美观问题,系统界面还略显粗糙,应尽可能做到 界面美观、可视化并且要方便用户使用,若时间允许,我会再学一些技术,增加一 些界面的友好性;在功能方面还有很多功能可以细化和扩充。另外每个用户只有一 张图片,并且不能修改,正常情况应该不是这样的,可惜这在当初设计时便已经定 死,若改动整个

温馨提示

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

评论

0/150

提交评论