毕业设计(论文)即时网络通信软件的设计与实现_第1页
毕业设计(论文)即时网络通信软件的设计与实现_第2页
毕业设计(论文)即时网络通信软件的设计与实现_第3页
毕业设计(论文)即时网络通信软件的设计与实现_第4页
毕业设计(论文)即时网络通信软件的设计与实现_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、目目 录录 1.绪论.1 1.1 选题的意义.1 1.2 网络通信的研究现状.2 1.3 毕业设计解决的主要问题.2 2.c/s 即时网络通信软件的概述.2 2.1 系统的概念.2 2.2 可行性分析.2 2.3 系统的关键技术.3 2.4 系统的开发方法与开发工具.4 2.5 通信软件流程分析.5 3.服务器端的设计.6 3.1 服务器端功能的设计.6 3.2 服务器端功能框架图.7 3.3 服务器端的工作流程.7 3.4 服务器端控件设计.8 3.5 服务器端界面设计.8 4.客户端功能设计.9 4.1 客户端功能框架图.9 4.2 客户端工作流程.10 4.3 客户端控件的设计.11 4

2、.4 客户端界面的设计.12 5.网络通信软件代码的实现.14 5.1 网络通信软件服务器端代码的实现.14 5.2 建立服务器代码的实现.14 5.3 实现文字与语音通信代码的实现.15 5.4 客户端实现文件交换代码的实现.16 6.通信软件的测试.17 7.结论与展望.18 7.1 结论.18 7.2 展望.18 参考文献.19 abstract.19 基于基于 c/sc/s 即时网络通讯软件的设计与实现即时网络通讯软件的设计与实现 王磊 内容提要:叙述了传统通信方式,新兴网络通信的现状和优缺点,重点讲述了基于内容提要:叙述了传统通信方式,新兴网络通信的现状和优缺点,重点讲述了基于c/s

3、c/s 的即时网络通讯软件的设计与实现,设计工具采用微软开发的的即时网络通讯软件的设计与实现,设计工具采用微软开发的visualvisual c+c+ 6.06.0中的中的win32win32 sdksdk和和mfcmfc类库。通过在服务器端安装服务器程序,在客户端安装客户端程序,实现了多个类库。通过在服务器端安装服务器程序,在客户端安装客户端程序,实现了多个 用户之间的文字聊天用户之间的文字聊天、文件发送,并初步实现了语音聊天的功能。通过开发一个与实际应文件发送,并初步实现了语音聊天的功能。通过开发一个与实际应 用相结合的通信软件深入学习和理解了软件的初步开发流程。用相结合的通信软件深入学习

4、和理解了软件的初步开发流程。 关键词:关键词: 网络通讯软件网络通讯软件 client/serverclient/server 文件发送文件发送 语音聊天语音聊天 visualvisual c+c+ 1.1. 绪论绪论 1.11.1 选题的意义选题的意义 21 世纪是信息的时代,人与人之间的交流越来越密切,传统的通信方式,如电话, 电报等在实时上虽仍占有一定的优势,但是在信息高速发展的今天,传统通信方式由于其 成本过高,方式单一的缺点,越来越暴露其弊端。 传统的通讯方式的缺点: (1)成本高。目前人们所使用的通讯方式普遍价格过高,移动通信的价格更是不菲。 这就在某种程度上限制了用户的使用和数量

5、。作为用户来讲,消费水平是一个很重要的选 择标准。 (2)使用方式单一。我们现在使用的传统通信方式主要是电话,电报,传真等。这些 方式只能听到声音或看到文字,用户并不能感受到对方,缺乏身临其境的感觉。 (3)传输数据量少。传统的通讯方式的带宽并不高,所以传输的数据量大大受到限制。 新兴的网络通讯的优点: (1)成本低。网络具有价格便宜,对于大多数用户来说,购买一台电脑不仅可以成为 日常的通信工具,更重要的是电脑可以作为很多方面的用途,如处理日常的文件,存储个 人的资料等,而网络通讯仅仅是一个很小的附加功能,更由于随着经济的发展,拥有电脑 就像拥有电视机一样普遍,电脑的价值已经被普遍认可。 (2

6、)方便快捷。网络聊天非常方便,传统的手机短信编辑相比电脑键盘来说具有很大 的劣势,电脑打字要更加地快速,同时网络也可以进行语音聊天,更加省去了输入的麻烦。 视频聊天也是网络通信的一个很大的优势,拉近了聊天双方的距离,使交流更加亲切。 (3)传输的信息量大。和传统的方式相比较,其数据量提高了数十倍,并且随着科技 的进步,这种优势将会继续扩大。我国拥有世界上最多的网络用户,目前正在进行高速信 息化建设,因此对网络的使用将会进一步扩大。 网络通讯软件具有上述的优势,因此其发展的前景将是广阔的,这也是研究它的意义 所在。 1.21.2 网络通信的研究现状网络通信的研究现状 当前网络通讯软件在生活中的应

7、用非常广泛,如我们平时使用的 qq、msn、xychat 等 软件,这些软件给我们的通讯带来了便利。随着网络的普及,人们对网络的依赖性也越来 越大。 聊天软件已经得到人们的认可,关于聊天软件的实现技术也获得了极大的突破,在实 现最基本的文字聊功能后,人们更好的实现了语音聊天等带有多媒体效果的通讯方式。同 时,在聊天的过程中,向对方发送诸如图片,音乐等文件也非常的方便,使用户从单一枯 燥的文字聊天转向丰富多彩的多媒体聊天方式。 目前,国内外对于聊天软件的研究技术比较成熟,qq 作为中国聊天软件的早期产品, 已经占据了国内约 70%的聊天软件市场,同时创造了年产值几百亿的企业,可见聊天软件 的地位

8、和对人们的作用。我国经济现在正在处于高速发展的阶段,中央将信息化的发展作 为今后经济增长的主要促进因素,网络通讯软件属于信息产业,因此在未来将获得更好的 发展。 随着计算机的应用和网络普及,对计算机技术的研究将会更加深入,如当前出现的人 工智能和嵌入式等方面,网络通讯也必将是以后研究的重点。作为在校学习计算机的大学 生,学习网络通信应是必不可少的,无论使用 vc,还是 j2ee 等编程平台,有很多地方都 会涉及到网络编程,所以学习网络应用方面的知识是一个很好的联系实际的例子,对于以 后进入工作及以后的学习也会是一个很好的锻炼机会 1.31.3 毕业设计解决的主要问题毕业设计解决的主要问题 本毕

9、业设计“即时网络通讯软件的设计与实现”将解决的主要问题如下: (1)实现用户上下线管理,维护用户的个人信息。 (2)实现两两用户之间的文字交流。 (3)在文字聊天的基础上增加了语音聊天,使用户之间的通信方式更加灵活与方便。 (4)添加了远程文件传输的功能,用户可以将本地计算机的资源通过网络发送聊天的 对方,实现了资源的共享。 2.c/s2.c/s 即时网络通信软件系统的概述即时网络通信软件系统的概述 2.12.1 系统的概念系统的概念 c/s 就是客户机/服务器模型,客户机下载客户端程序并安装,在服务器端安装服务器 软件。客户端首先连接服务器,向服务器报告自己的数据,然后可以向服务器提出请求,

10、 由服务器根据请求的内容进行响应,从而实现了用户之间的通讯。 2.22.2 可行性分析可行性分析 2.2.12.2.1 目标目标 即时网络通讯软件是一个集经济性、易用性、互动性于一身的通信平台,在实际的通 信中将受到越来越广泛地应用。网络通讯作为一种新的通信方式,将最大限度利用现有网 络资源,可以满足不同用户之间通信和资源共享的需要。使人们花费最小的代价来获得最 大的经济效益。 2.2.22.2.2 经济上的可行性分析经济上的可行性分析 本软件作为一个毕业设计的一个项目,无需开发经费,在经济上是完全可以接受的, 并且本软件实施后可以显著提高通信的效率,有助于更好的交流沟通,所以本系统在经济 上

11、是可行的。从软件系统开发的成本收益角度方面,基于 c/s 的即时网络通讯软件的开 发设计属于一项低投入高效益的工作,可以大大减少传统通信方式的成本,网络通讯是计 算机应用的一个很小的功能,它的传输载体仅是网络通道,同时它的应用不会给网络带来 任何损失,所以在经济上它是非常节约成本的。同时它可以仅在企业内部网络里运行,给 内部人员的交流带来极大的方便,省去了拨打电话的时间与费用,总之,在经济上是完全 可行的。 2.2.32.2.3 技术可行性分析技术可行性分析 (1)计算机的应用越来越广泛,网络也以十分迅速的方式在发展,各种硬件设施已 经比较便宜,绝大部分家庭或企业均可接受。通过网络可以实现信息

12、共享与管理、信息的 发布与管理,从而方便使用者进行信息交流和信息共享。 (2)现代计算技术、网络技术的发展给通信方式带来了翻天覆地的变化,以现有的 技术已经可以开发出功能强大的通讯软件。 (3)开发人员具备良好的技术基础和较强的学习能力,能较快掌握新技术,有能力 开发新软件,在已有的知识基础上实现网络通讯软件 2.2.42.2.4 社会环境可行性分析社会环境可行性分析 随着计算机网络技术的不断发展,通信方式已经渐渐从传统方式向网络方式转变,人 们对网络的使用也非常多,尤其是青年一代对网络的使用。通信软件可以满足人们在日常 生活娱乐时的通信需求。 2.2.52.2.5 结论意见结论意见 本通讯软

13、件的开发.使得通信方式更加多样化、节约化、高效化。同时.该系统较好的 结构、较全面的功能.使得本系统具备良好的实用价值。经过可行性分析研究,本系统可 立即着手组织开发。 2.32.3 系统的关键技术系统的关键技术 2.3.12.3.1 网络传输协议网络传输协议 (1)tcp 传输协议。tcp 协议是面向连接的协议,即在点点进行连接之前必须首先建 立数据通路,就向我们平时打电话一样,在通话之前必须先拨号,等待对方的接听以后才 能进行通话。它的数据传输采取的是同步方式,当数据发送到对方时,必须等待接收方的 应答信号后才能继续下一次的发送工作,即我们平时所说的“握手”方式。由于 tcp 协议 采用的

14、是这种连接方式,因此由它建立的连接,是可靠的,在网络不是十分理想的情况下, 速度牺牲很大,但是却能够保证所传输的数据的正确性。 (2)udp 传输协议。udp 协议采用的是面向无连接的通信方式,它在通信前不需要 提前建立通信链路,它是异步的,数据的发送比较迅速,不需要等待应答信号。优点是发 送速度较快,但是在数据的一致性方面不好,在网络差的情况下,容易丢失数据包。一般 用于远程视频等对一致性要求并不是很高的数据传输方面。 2.3.22.3.2 音频数据采集与播放技术音频数据采集与播放技术 (1)在语音聊天方面,要熟悉有关音频数据的采集与播放的流程,下图给出了详细 的音频数据采集流程图。 打开录

15、音设备 接收音频消息 准备缓冲区 开始录音 清空内存 输入内存块 是否已满 n n y y 结束录 音? y 图 1 音频数据采集流程图。 2.42.4 系统的开发方法与开发工具系统的开发方法与开发工具 2.4.12.4.1 visualvisual c+c+ 6.06.0 平台概述平台概述 关于 visual c+ 6.0,是由微软开发的成熟的工具平台。visual c+ 6.0 包括 win32 sdk,mfc 等,它也支持 c 语言程序的开发,是一款使用非常广泛的面向对象编程工具。 visual c+ 6.0 在开发基于 c/s 的软件时具有自身的优势,但是 visual c+ 6.0

16、与其他 编程语言相比较具有一定的难度,要对其熟练的掌握,没有长时间的应用是不容易的。选 择使用 visual c+ 6.0 的主要原因是微软提供了 win32 sdk 和 mfc 开发包,它把所有使 用的函数进行了封装,使用者不需要具有底层开发的知识便可以开发高质量的应用软件。 2.4.22.4.2 visualvisual c+c+ 6.06.0 的特征的特征 (1)既支持面向过程的编程方式,同时主要支持面向对象的编程方式。 (2)visual c+ 6.0 包含了微软开发的 mfc 类库和 win32 sdk,极大的方便了开发 人员的工作,能够产生高质量的软件 (3)使用面广,是一款应用非

17、常广泛的开发平台,它可以应用在开发各种形式的软 件方面。 (4)学习起来较一般的语言有一定的难度,不容易掌握。 (5)高效率。visual c+ 6.0 采用一次编译的方式,使得它在运行的实效性上,具 有其他编程工具所不具备的优势。 (6)支持性好。其以 windows 作为主要支持平台。 2.4.32.4.3 开发环境开发环境 操作系统:microsoft xp service pack2 程序语言:c+ 开发环境:visual c+ 6.0 2.52.5 软件通信流程分析软件通信流程分析 在基于 c/s 模型的网络通信中,服务器在整个系统的作用很关键,处于中心位置,客 户端的关键操作要经由

18、服务器来提供,下图展示了 c/s 结构的模型图: 客户端 客户端 登录登录 服务器 信息交换信息交换 图 2 c/s 模型图 软件系统的大概信息流程图如下: 服务器客户端 客户端 客户端 access 数据库 维护 数据 库 文件传送 检索检索 文件传送 登录 登录 登录 图 3 通信流程图 图 3 描述了系统的通信流程,客户端首先要登录服务器来获得所需要的数据,服务器 处于客户端之间,它可以维护数据库,管理客户端,其中客户端之间的文件传输在客户端 点与点之间直接进行。 图中采用的数据库是 microsoft access,首先它可以满足小型系统对数据库的需求, 其次它不需要过多的配置,而 s

19、ql server 一般是作为大型数据库来应用,它的配置操作 要繁琐的多。visual c+ 6.0 对 microsoft access 有着很好的支持,使用很少的代码就 可以实现数据库的连接与存取等操作,这是它的优势所在。 3服务器端的设计服务器端的设计 31 服务器端功能的设计服务器端功能的设计 服务器作为处于本软件的核心,具有多种功能,它维护了客户端的信息和上下线管理 信息,工作比较复杂,下面介绍服务器端的主要功能: (1)初始化机器。初始化工作包括:申请内存空间用于和客户端通信,建立客户端连 接数据库,建立监听套接字,绑定端口,监听连接,维护客户端连接出入的数据库,初始 化服务器的各

20、个控件的值 (2)存储客户端的信息。服务器和 microsoft access 数据库结合,维护用户的个人 信息,包括 id、密码、昵称、姓名、年龄、地址等,同时还保存客户端的 ip 信息。 (3)转发语音聊天信息。服务器端对由客户端发来的语音信息进行监听,并发回其他 客户端,或做其他的处理。 (4)实现客户端的上下线的管理。用户的操作都反映在服务器的在线用户列表中,通 过此列表也为其他客户端提供在线用户信息。 3.23.2 服务器端功能框架图服务器端功能框架图 服务器 配 置 环 境 异 常 处 理 通 信 请 求 监 听 连 接 文 字 传 递 广 播 语 音 传 递 维 护 信 息 图

21、4 服务器功能框架图 图 4 显示了服务器的主要的功能,服务器要处理部分作业,用来为客户端提供服务。 其中,配置环境包括加载套接字库,绑定端口,建立监听等。维护信息包括维护客户端的 用户信息,向客户端发送其他的客户端信息。通信请求所需做的工作最多,服务器接收客 户端发来的消息,进行判断,决定下一步操作。语音传递功能,由服务器将接收到的语音 信息传递给其它客户端。 服务器功能的优化设计: 服务器作为客户端之间的桥梁,从实际应用的角度出发,不应该把客户端所有的操作 全部由服务器来承担,做这样的优化,一方面为了减轻服务器端处理的信息量,使服务器 从繁重的任务中解脱出来,处理更加紧迫的任务;另一方面,

22、客户端之间的一些不涉及到 服务器的操作,由客户端之间采取点对点的方式来完成,这就可以减少数据传递的时间。 比如在文件发送的时候,若采取将客户端的数据发到服务器,然后再由服务器发回接收客 户端,这就会花费很多的时间,使用户难以接受。 3 33 3 服务器端的工作流程服务器端的工作流程 启动 成功 监听连接线程处理命令线程 客户端 n y 图 5 服务器的工作流程图 图 5 显示了详细的服务器工作流程,服务器启动以后建立了两个线程,其中一个用于 监听客户端的连接,以便维护在线用户的数据库,另外一个线程用于处理由客户端发来的 各种请求。如用户刷新在线用户列表,服务器则通过此线程将新的在线客户端信息传

23、递给 该客户端。 3.4 服务器端控件的设计服务器端控件的设计 服务器界面的控件属性表如下所示: 表 1 服务器的控件属性表: 控件类型控件标识属性属性值 static textidc_list1text static textidc_statictext ip: buttonidc_serverstartcaption 启动 buttonidc_serverexitcaption 退出 3.5 服务器端界面的设计服务器端界面的设计 图 6 服务器启动界面 图 6 显示了服务器初始界面的设计,当单击了启动按钮以后,便可以在电脑上建立服 务器,通过此程序来为客户端的登录做准备,并为其提供服务。

24、图 7 语音聊天服务器 图 7 显示了语音聊天服务器的界面,系统将语音聊天服务器独立出来,用来转发客户 端之间的语音信息。独立出来此模块,有助于更好的实现语音通信。 4. 客户端的功能设计客户端的功能设计 客户端的工作也比较复杂,它具有如下基本功能: (1)创建文字信息接收线程,收发文字信息,可以实现客户端之间的文字信息的通信。 (2)语音信息的收集与播放功能。客户端接收来自服务器发来的语音信息,将信息存 储到本地内存,然后播放,实现语音聊天。客户端具有采集语音信息的能力,采集后发送。 (3) 客户端之间的文件交换。设计了另外两个线程,用于发送和接收文件。当另一用 户请求文件发送时,先将此信息

25、发送给对方,等待对方的确认。若同意接收,由接收方新 建一个接收线程,并连接发送方,由此可以实现文件的传输。在传输的过程中显示文件发 送的进度。发送和接收文件独立于文字聊天和语音聊天的功能,通过建立独立的套接字, 在另一个端口进行绑定。 4.14.1 客户端的功能框架图客户端的功能框架图 在客户端的功能中,增加了文字聊天,文件发送和语音聊天,其功能图如下所示: 客户端 配 置 环 境 文 字 聊 天 文 件 传 输 语 音 聊 天 接 收 信 息 异 常 处 理 查 看 资 料 修 改 资 料 图 8 客户端功能框架图 为了更好的完成上述功能,对客户端功能的实现采取如下优化设计: 文件交换功能采

26、用点对点的方式,客户端在登录服务器以后,便保存了由服务器发来 的在线的客户端基本信息。当发送文件时,直接调出该信息,建立一个线程,等待接收方 的连接,连接成功后就可以进行文件的传输。这种点对点的文件传输方式大大减少了所需 的时间,使文件传递的更加迅速。 语音聊天的功能采用了比较底层的波形处理 api 函数,主要是考虑到底层函数对设备 操作的方便性,及时性,底层的函数可以更好的处理传递来的语音数据。它将数据收集在 设定的内存缓冲区内,当语音数据装满缓冲区时,便发出数据满消息,然后调用播放函数, 如此循环控制,完成语音聊天。 4.2 客户端工作流程客户端工作流程 当用户登录服务器之后会新建一个线程

27、,用于接收其他客户端发来的请求或消息。若 是接收到来自其它客户端的消息则直接显示在聊天窗口上。若不是,此线程会检测到包含 在其中的请求命令,而决定下一步的操作。如接收到 file 指令时,说明对方希望传递文 件,则客户端建立一个新的线程,用于双方之间的文件交换。同样,若是双方进行语音聊 天或者和其他的客户端之间进行聊天,也会创建一个新的线程来连接,这就可以实现多人 之间的点对点的通讯。 客户端 处理线程 文 件 线 程 外部请求 登录 语 音 线 程 线 程 2 线 程 1 外部请求 图 9 客户端工作流程图 图 9 所示为客户端的工作流程图,处于核心的处理线程接收外部请求,通过过滤处理 后而

28、建立相应的线程,图中线程 1,线程 2 代指其它客户端要进行的工作,交由这些线程 处理。客户端可以创建很多个线程,直到到达聊天用户的聊天上限为止。 4. 3 客户端控件的设计客户端控件的设计 表 2 客户端登录页面控件设计表 控件类型控件标识属性属性值 static textidc_statictext 用户号码: static textidc_statictext 用户密码: static textidc_statictext 服务器 ip: check boxidc_checktext 保存密码 ip addressidc_serveripip buttonidc_logincaption

29、 登录 buttonidc_exitcaption 取消 buttonidc_registercaption 注册 下表列举了客户端中聊天界面控件的属性表: 表 3 聊天界面控件设计表 控件类型控件标识属性属性值 edit boxidc_showtexttext edit boxidc_edittexttext buttonidc_voicechatcaption 语音聊天( wsacleanup(); return -1; /邦定主机地址 inetaddr.sin_addr.s_addr=htonl(inaddr_any); inetaddr.sin_family=af_inet; inet

30、addr.sin_port=htons(server_port); if(bind(slisten,(sockaddr*) wsacleanup(); return -1; /侦听 if(listen(slisten,5)!=0) afxmessagebox(错误:listen failed in start); return -1; g_serversocket = slisten; dlg-m_list.insertstring(g_dwlistcount+, 创建服务器成功); dlg-m_list.settopindex(g_dwlistcount-1); dlg-getdlgitem

31、(idc_server_begin)-enablewindow(false); /创建处理线程 handle h_handle; if(h_handle =createthread(null,0,processthreadio,null,0, return -1; 5. 3 实现语音通信代码的实现实现语音通信代码的实现 void chandlemessg:onreceive(int nerrorcode) csocket:onreceive(nerrorcode); do cmessg temp; temp.serialize(*m_recvbit); m_dlg-m_smsglist+=te

32、mp.m_strtext; m_dlg-setdlgitemtext(idc_servermonitor,m_dlg-m_smsglist); if(temp.m_tag=1 int linenum=(cedit *)(m_dlg-getdlgitem(idc_servermonitor)-getlinecount(); (cedit *)(m_dlg-getdlgitem(idc_servermonitor)-linescroll(linenum); for(position pos=m_dlg-m_connectionlist.getheadposition();pos!=null;) c

33、handlemessg * t = (chandlemessg*)m_dlg-m_connectionlist.getnext(pos); if(t-m_hsocket!=this-m_hsocket) t-sendmessage( while (!m_recvbit-isbufferempty(); 5.4 客户端文件交换代码的实现客户端文件交换代码的实现 sendfile 的部分代码如下: /接收文件线程 uint threadrecvfile(lpvoid v) /创建 socket 结构代码省略 /开始接受文件文件信息 if(recv(clifilesock,(char *) dlg-

34、getdlgitem(idc_sendfile)-enablewindow(true); closesocket (clifilesock); return false; /存储文件为: cfiledialog savefiledlg( false,null,dlg-m_streamfileinfo.szfiletitle, ofn_hidereadonly|ofn_overwriteprompt, _t(所有 (*.*)|*.*|); if(idok!=savefiledlg.domodal() memset(buff,0,sizeof(buff); sprintf(buff,%s,notn

35、); send(clifilesock,buff,sizeof(buff),0); closesocket(clifilesock); dlg-getdlgitem(idc_sendfile)-enablewindow(true); return 1; cstring filepathname; filepathname = savefiledlg.getpathname(); /接受文件 memset(buff,0,sizeof(buff); sprintf(buff,%s,yestn); send(clifilesock,buff,sizeof(buff),0); cfile destfi

36、le(filepathname, cfile:modecreate | cfile:modewrite | cfile:typebinary); if(dlg-m_streamfileinfo.nfilesizelow/(1024*1024) != 0) nfilesize = dlg-m_streamfileinfo.nfilesizelow/(1024.0*1024.0); strprompt.format(正在接收文件%s,大小:%.2fmb,dlg-m_streamfileinfo.szfiletitle,nfilesize); else nfilesize = dlg-m_strea

37、mfileinfo.nfilesizelow/(1024.0); strprompt.format(正在接收文件%s,大小:%.2fkb,dlg-m_streamfileinfo.szfiletitle,nfilesize); /循环接收文件 uint dwread = 0; uint dw = 0; while(dwreadm_streamfileinfo.nfilesizelow) byte* data = new bytemax_buff_size; memset(data,0,max_buff_size); dw=recv(clifilesock,(char *)data,max_bu

38、ff_size,0); else setfiletime(handle)destfile.m_hfile, destfile.close(); setfileattributes(dlg-m_streamfileinfo.szfiletitle,dlg-m_streamfileinfo.dwfileattributes); strprompt.empty(); strprompt.format(完成接收文件%s,dlg-m_streamfileinfo.szfiletitle); dlg-showmsg(系统,strprompt); dlg-m_progressfile.setpos(0);

39、dlg-m_progressfile.showwindow(false); if(clifilesock !=invalid_socket) closesocket(clifilesock); dlg-getdlgitem(idc_sendfile)-enablewindow(true); afxendthread(0); return 1; 6. 网络通讯软件的测试网络通讯软件的测试 通讯软件测试工作比较顺利,可以实现文字和文件的传输,对于语音聊天,可以完成 基本的语音传输与播放工作。但在测试过程中出现了很多问题,如语音通信上不够清晰, 噪音过大,出现回声,语音的响应不够及时。这是因为没有对

40、语音数据进行压缩与过滤处 理,使得音频数据在传递过程中不是很理想,是需要改进的方面。文件传输功能目前对于 文件的容量有一定的限制,对很大的文件的传输,出现了数据丢失的问题或者文件不能打 开的错误。 7. 总结与展望总结与展望 7.17.1 总结总结 经过精心设计制作和反复地调试工作,基于 c/s 的即时网络通讯软件基本完成。软件 的功能包括:文字聊天、文件发送、语音聊天。可以满足基本的通信交流的要求,方便了 用户。 通过这次毕业设计,我深入学习和理解了软件的开发流程,基本掌握了 vc+开发工具, 在软件实现过程中我能认真思考,不断钻研,在实际的开发中变换新的思路,提高了软件 的整体效率和质量,

41、如对服务器功能的界定上,重新定义了服务器的工作任务,使它更好 的实现了桥梁的作用。在语音聊天的功能的实现上,创建了自己的类,对语音的采集与播 放功能进行了封装,形成了一个独立的模块。用户之间的各种通信,通过创建不同的进程 来完成,可以实现较多的工作。在软件开发过程中也遇到了很多的问题,文件发送的实现 花费了较多的时间,在刚开始做的时候,我采用的是发送客户端先将数据发送到服务器, 然后再由服务器传回接收客户端。但是每次在发送稍大一点的文件时都会非常的慢,同时 丢失一部分数据,导致文件不可用。后来,我研究了聊天软件 qq 的文件发送的功能,发 现 qq 的这项功能在本地计算机之间传送文件特别的迅速

42、,我认为它肯定不是采取我的那 种方法,因此我将文件发送改为点对点的方式,这样实现就容易得多,从而成功地解决了 这个问题。在今后的工作学习中,我仍会不断的完善它,充实它,使之提供更方便、更准 确、更快捷,更全面的服务。 由于时间和技术水平的缘故,本系统还存在着许多方面的工作尚未完善。比如,实现 的功能较少,只能满足通信软件的一般需求,系统在可靠性上相对较弱,在系统的更进一 步的实现阶段,应提高系统的正确性和稳定性,以及系统的容错性。另外,本系统只提供 了一些基本的文件操作功能,这些功能还不能反应应用中的全貌,还需要进一步地提高和 完善。 7.27.2 展望展望 随着宽带的普及,即时通讯的内涵也开始变化。与过去的纯文本交流不同,新型的即 时通信业务融合了视频、音频交流等宽带应用元素。目前各种即时通信除提供了基本的即 时互动交流外,还能提供视频、语音通信服务,在短信收发、文件共享、数据传输、游戏、 娱乐、个性化设置等方面也都有大的开拓和创新。即时通讯软件正在面临第二次发展浪潮, 即基于 p2p 技术的多媒体以及基于 ip 技术的通信。 在未来的一段时间,即时网络通讯软件的发展将会更加迅速,更加趋于多样化。从我 国目前的国情来看,信息产业是重点促进发展的产业,信息产业面临着难得的机遇期。即 时网络通信软件在普通大众的生活之

温馨提示

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

评论

0/150

提交评论