




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、飞鸽传书软件的设计与测试飞鸽传书软件的设计与测试摘摘 要要网络通讯在当今已经不算新鲜事物,但大多数网络通讯都需要借助internet 上的服务器,这就给那些具有大规模内部网络的用户造成了许多问题,如浪费网络资源、遭遇到网络攻击、传播的病毒、破坏防御系统等等。由于互连网上的网络通讯工具给企业内部信息交流带来了不便,所以为了方便内部网络的用户之间的沟通,需要开发一个基于局域网的信息收发系统的即时通讯工具,实现在内部网络中进行信息的交流。本课题设计主要针对局域网通讯而开发设计的,采用的是 c/s 构架,类似飞鸽传书系统,来实现聊天、文件传输功能,并借助一些网络通讯组件,成功的实现了在局域网上的即时通
2、讯。本论文的目标是设计一个类似飞鸽传输的局域网通信软件,并分析它在其领域的优势。本设计以 c 编写,能在 windows 2000/net/xp 等环境下运行。设计共分为五大模块,分别是:首先,介绍选题背景及意义和国内外研究现状;其次,介绍 tcp/ip 点对点协议技术,c/s 架构和 socket 网络编程技术;再次,对当前局域网文件传输进行需求分析并提出解决方案;然后,根据解决方案对系统进行设计;最后,对工作计划统计以及分析系统进行测试并得到测试结果。关键词关键词:聊天;传输;socket;飞鸽传书;c/s 结构design and implementation ip messenger
3、based on lanabstractthe network communication already do not calculate the new things now, but the majority network communication all need to be support by the server on the internet, this make these user have the large-scale internal network who many problems, such as waste network resources, be at
4、tacked by network, dissemination virus, destruction defense system and so on. because the interconnection network communication facilities on the interior communication brought inconveniently for the enterprise, in order to facilitate internal communication between network users, needs to develop on
5、e based on the local of instant message area network information receiving and dispatching system instant message facilities, realizes carries on the information which network the exchange. this topic design mainly aims at the local area network communication to develop the design, uses is the c/s s
6、keleton,like ip messenger, for chat and files transmission.lan against the text chat, documents and folders transmission, the design of a fake ip messenger of lan software, and analyze it in their areas of advantage. the design is developed by c program it can make in the cnvironment of windows 2000
7、/net/xp of topic selection, in the environment the design altogether divides into five big modules, respectively is: first, introduction selected topic background and significance and domestic and foreign research present situation; second, introduces the tcp/ip point to point protocol technology; c
8、/s construction technique and sockt network programming technology; third, carries on the demand of the current local area network file transfer to analyze and propose the solution; fourth, carries on the design according to the solution to the system; fifth, statistic the work plan, awalys and test
9、 the system and obtains the testnesult.key words: chat;transmission; socket; c/s skeleton;ip messenger 第 1 页 共 20 页目目 录录论文总页数:20 页1引言.11.1 课题背景.11.2 本课题主要研究背景.11.3 本课题主要研究思路和方法.11.4 研究项目的目的以及意义.21.5 winsocket 的寻址方式.22系统需求分析.22.1 系统设计目标.22.2 系统总体需求分析.32.3 组织结构的分析.32.3.1 开发运行环境.32.3.2 系统开发语言.43理论知识.43
10、.1 c/s 软件架构技术.43.2 用户数据报协议(udp) .43.3 单播、广播、组播浅析.54系统设计.54.1 文字聊天模块的整体构架.54.2 文件传输模块的主要流程图.64.3 系统的主要功能模块.64.3.1 文字聊天的主登录界面.64.3.2 文字聊天信息的封装.94.3.3 聊天信息的加锁.104.3.4 文件传输的界面.124.3.5 用户密封或加锁传输文件.155系统测试.175.1 测试环境.175.2 测试结果.17结 论.17参考文献.18第 2 页 共 20 页1 1引言引言 1.11.1 课题背景课题背景当时间走向 21 世纪,当今时代也由工业经济渐渐成为了知
11、识经济、信息经济的时代。信息的需求量的不停增加,促使了计算机通信的日新月异!虽然网络的使用频率与使用的范围都越来越广泛,但是人们使用的网络的用途主要的还是只有两个:(1)相互之间的沟通,(2)资源共享。局域网作为网络的一个重要组成部分,它不但用户与外界连接的枢纽,同时也是近距离用户之间沟通与资源共享的一个重要途径。在这种情况下,如何使局域网内的用户便捷的勾通,以及快速的资源共享,也就成为了人们对网络研究的重点之一。本系统仿飞鸽传输,是一个局域网内的通迅工具,主要通过 winsockt 完成。它据有的功能有:(1)局域网内用户间简单的文字聊天功能;(2)局域网内用户间相互的文件、文件夹传输。1.
12、21.2 本课题主要研究背景本课题主要研究背景随着计算机和通讯技术的发展,计算机的网络化已经渗透到各个应用领域,尤其是以 tcp/ip 协议之间的网络互连发展很快,计算机应用系统的开发由传统的单机方式转向到了网络环境的开发。大部分编程语言都提供了基于 windowssockets 网络编程接口的 win socket 控件,它使开发 tcp/ip 通讯变得简单方便。网络之间进行数据通讯时,使用地址来标识网络中的计算机,有了地址以后,数据才会准确地发送到地址所指向的计算机。tcp/ip 协议使用 ip 地址为网络中计算机的标识,而且每台计算机的 ip 地址是唯一的,一般情况下,每台计算机运行的程
13、序不止一个,因此要在应用程序中建立连接的话,还需要一个地址标识。在 tcp/ip 协议书中使用端口(port)作为计算机上运行的应用程序的标识,因此 tcp/ip 协议中一个有效的网络地址包括 ip 地址和端口地址两个部分。tcp/ip 协议提供了两种计算机之间的通讯方式:tcp 方式和 udp 方式。tcp 是一种面向连接的服务,在文件传输时会先行建立连接,通过链接提供双向、有序且无重复的数据流服务、以及流量控制、差错检测和纠错等服务,从而确保文件传输的正确性;udp 则是一种无连接的服务,它在传输文件时不会确保传输端的文件能够正确无误的传送到接收端,所以当使用 udp 时,通常要自己作接收
14、确认的工作。第 3 页 共 20 页1.31.3 本课题主要研究思路和方法本课题主要研究思路和方法本系统的开发采用基于 win socket 的广播发送模式,进行文字聊天和文件、文件夹传输的设计与开发。因此,本设计首先分析该系统的相关功能,结合本设计的相关要求写出需求分析;其次,综合运用以前所学的相关知识,选择所熟悉的开发工具进行本设计的开发;在设计中以需求分析为基础,写出系统开发计划、实现流程及相关问题的实现方法;最后,在系统开发完毕后,进行调试和运行,做好调试和运行的相关记录。1.41.4 研究项目的目的以及意义研究项目的目的以及意义随着互联网技术的迅猛发展,网络给人们带来了很多便利,比如
15、人们借助于网络进行相互交流变得更加方便。聊天工具作为互联网中运用最为广泛的通信工具之一,如今都已被广大网民接受。很多人都使用过飞鸽传书软件,飞鸽传书发展到现在已经具有了很多功能:有文字聊天、文件、文件夹传输的基本功能,也有密封、加锁等较为复杂的功能。本毕业设计的目的主要是为了检查使学生综合运用以前所学知识(包括以前所学的一些关于网络、编程、信息安全等知识)的能力,模拟局域网飞鸽传书软件,开发一个天系统软件,本毕业设计主要实现局域网内文字聊天及文件传输等功能。1.51.5 winwin socketsocket 的寻址方式的寻址方式因为 winsock 要兼容多个协议,所以必须使用通用的寻址方式
16、。tcp/ip使用地址和端口号来指定一个地址,但是其它协议也许采用不同的形式。如果winsock 强迫使用特定的寻址方式,添加其他协议就不大可能了。在 winsock中,应用程序员通过 sockaddr_in 结构来指定 ip 地址和端口号。定义如下:struct sockaddr_inshort sin_family;u_short sin_port;struct in_addr sin_addr;har sin_zero8;应用程序可以使用 inet_addr 函数将一个小数点分隔的十进制 ip 地址字符串转化成由 32 位二进制数表示的 ip 地址。inet_ntoa 函数将一个网络字节
17、顺序的 32 位 ip 地址转化字符串。注意:inet_addr 返回的 32 位二进制数是用网络顺序存储的。第 4 页 共 20 页2 2系统需求分析系统需求分析2.12.1 系统设计目标系统设计目标根据对飞鸽传输系统的调研,我认为本设计需要满足以下几个系统设计目标:(1)实用性原则:真正为局域网的实际工作服务,按照需求的轻重缓急,合理设计本系统。(2)可靠性原则:必须为用户提供安全的服务,尤其是要保证传输的稳定性。(3)友好性原则:使用本系统的用户相当一部分对计算机知识了解很少,所以系统操作上要求简单方便,便于用户掌握。(4)可扩展性原则:采用开放的标准和接口,便于系统向更大的规模和功能扩
18、展。 2.22.2 系统总体需求分析系统总体需求分析根据用户需求,本系统分为两个子系统::局域网内简单文字聊天子系统,它是在局域网内选择相应的用户,以便对之发送文字信息,:文件、文件夹传输系统,它是在先把需要传输的文件、文件夹转换成相就的数据流传关,到了目的主机再由之还原。本系统的文字聊天系统实现的功能类似于用户之间的聊天。在设计系统时,应根据简洁、流畅的特点安排布局,在编制程序时应充分考虑这一点传输的稳定、快捷,真正做到“简洁、高效、流畅、安全”的使用环境。用户使用的过程为,先是用户登开启本软件,软件自动检索局域网的其它用户,并以之成为用户列表,让用户选择。当用户发现所要连接的用户之后,双击
19、该用户,则出现发送窗口。用户用之来发送消息或者文件。接收方可以选择接收或者拒绝相应的传输文件。2.32.3 组织结构的分析组织结构的分析以下为组织结构图:图 1 组织结构图直接传送发送端电脑选择目标电脑连接后数据转换加密传送数据转换目标主机第 5 页 共 20 页.1 开发运行环境开发运行环境开发此系统所需的基本软、硬件环境为:(1).windows95、 windows98 或 windowsnt/2000/xp;(2).pentium100 及以上档次的 ibm pc 及其兼容机;(3).128m 以上内存措施;(4).1g 以上可用硬盘空间;(5).vga 显示器;以上的
20、配置均要求为在同一局域网内的两台或两台以上。.2 系统开发语言系统开发语言本系统采用 vc/vc+语言开发。vc/vc+是前些年迅速发展和推广的一种计算机语言,近年来,已经相当的完善。它主要特点有两个方面:一是全面兼容c,二是支持面向对向的方法。.3 3理论知识理论知识3.13.1 c/sc/s 软件架构技术软件架构技术c/s(client/server)结构,即大家熟知的客户机/服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到client 端和 server 端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是 client/se
21、rver 形式的两层结构,由于现在的软件应用系统正在向分布式的 web 应用发展,web 和 client/server 应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。传统的 cs 体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是 client 端还是 server 端都还需要特定的软件支持。由于没能提供用户真正期望的开放环境,c/s 结构的软件需要针对不同的操作系统系统开发不同版本的软件,加之产品的更新换代十分快,
22、已经很难适应百台电脑以上局域网用户同时使用。3.23.2 用户数据报协议用户数据报协议(udp)(udp)udp(user datagram protocol):用户数据包协议,它和 tcp 一样位于传输层,和 ip 协议配合使用,在传输数据时省去包头,但它不能提供数据包的重传,所以适合传输较短的文件。由于大多数网络应用程序都在同一台机器上运行,计算机上必须能够确保目的地机器上的软件程序能从源地址机器处获得数据包,以及源计算机能收到第 6 页 共 20 页正确的回复。这是通过使用 udp 的“端口号”完成的。源端口号标识了请求域名服务的本地机的应用程序,同时需要将所有由目的站生成的响应包都指定
23、到源主机的这个端口上。与 tcp 不同,udp 并不提供对 ip 协议的可靠机制、流控制以及错误恢复功能等。由于 udp 比较简单,udp 头包含很少的字节,比 tcp负载消耗少,所以 udp 适用于不需要 tcp 可靠机制的情形,比如,当高层协议或应用程序提供错误和流控制功能的时候。udp 是传输层协议,服务于很多知名应用层协议,包括网络文件系统(nfs) 、简单网络管理协议(snmp) 、域名系统(dns)以及简单文件传输系统(tftp) 。3.33.3 单播、广播、组播浅析单播、广播、组播浅析硬件组播(multicasting)是一种多点投递的形式,它使用硬件技术,通过使用大量组播地址来
24、通信。当某一组机器需要通信时,选择一个组播地址,并配置好相应的网络接口硬件,识别组播地址,从而收到该组播地址上分组的拷贝。广播(broadcasting)是多点投递的最普遍的形式,它向每一个目的站投递一个分组的拷贝。它可以通过多个单次分组的投递完成,也可以通过单独的连接传递分组的拷贝,直到每个接收方均收到一个拷贝为止。在多数网络中,用户是通过把分组分送给一个特殊保留的地址即广播地址(broadcast address)来进行广播投递,它的主要缺点是会耗费大量的主机资源和网络资源。单播(unexacting)是指只有一个目的地的数据报传递。从投递目的地的数量而言,单播和广播均可看作是组播的一个子
25、集。单播可以看作仅包括一台机器群组的组播;广播可以看作包含了所有机器群组的组播。但从数据报的投递方式而言,单播、广播和组播还是有较大的区别。 4 4系统设计系统设计本系统主要分为文字聊天和文件传书两大部分。所以本论文将把系统分成两大模块来介绍。4.14.1 文字聊天模块的整体构架文字聊天模块的整体构架4.24.2 文件传输模块的主要流程图文件传输模块的主要流程图4.34.3 系统的主要功能模块系统的主要功能模块.1 文字聊天的主登录界面文字聊天的主登录界面.2 文字聊天信息的封装文字聊天信息的封装封装是一种把多次聊天的的数据捆绑在一起,使这两者不受外界干扰和误用
26、的机制.封装可被理解为一种用做保护的包装器,以防止代码和数据被包装器外第 7 页 共 20 页部所定义的其他代码任意访问.对包装器内部代码与数据的访问通过一个明确定义的接口来控制.封装代码的好处是每个人都知道怎样访问代码,进而无需考虑实现细节就能直接使用它,同时不用担心不可预料的副作用.用户密封只需选择 seal 选项,程序插件自动生成封装功能。并且在聊天过程中,封装的过程仍在持续,聊天的内容是边封装数据包边传输。密封发送信息接收界面,如图 6 所示图 6 接收界面在点击 open 后显示信息。其中实现的主要代码为:bool tapp:preprocmsg(msg *msg)/ for tra
27、nslateaccel & isdialogmessagefor (hwnd hwnd=msg-hwnd; hwnd != null; hwnd=:getparent(hwnd)twin*win = searchwnd(hwnd);if (win != null)returnwin-preprocmsg(msg);returnfalse;lresult callback tapp:winproc(hwnd hwnd, uint umsg, wparam wparam, lparam lparam)第 8 页 共 20 页twin *win = searchwnd(hwnd);if (w
28、in)returnwin-winproc(umsg, wparam, lparam);if (win = prewnd) != null)prewnd = null;addwinbywnd(win, hwnd);returnwin-winproc(umsg, wparam, lparam);returndefwindowproc(hwnd, umsg, wparam, lparam);.3 聊天信息的加锁聊天信息的加锁加锁名如其实,其作用主要在于使传送的信息或者文件、文件夹只能给有password 的用户看,从而加强了信息的安全程度。在现在这个网络黑客泛滥的时代,为了保护信息的
29、隐私,加锁就更加必要了。以下为加锁信息的主要界面。在加锁后的信息接收界面,如图 7 所示:图 7 聊天信息加锁后界面点击确定后显示,如图 8 所示:第 9 页 共 20 页图 8 开锁界面其中主要代码为:bool tregistry:deletechildtree(lpstr subkey)charbuf100;bool ret = true;if (subkey != null & openkey(subkey) != true)returnfalse;while (enumkey(0, buf, sizeof(buf)if (ret = deletechildtree(buf) !
30、= true)break;if (subkey != null)closekey();ret = deletekey(subkey) ? ret : false;else while (enumvalue(0, buf, sizeof(buf)if (deletevalue(buf) != true)ret = false;第 10 页 共 20 页break;returnret;.4 文件传输的界面文件传输的界面与文字聊天一样,系统的文件、文件夹传输模块也尽量地要求简单易行,便于操作。当然,作为文件的传输,速度和安全也就成为了重要的问题,系统的简单加锁能达到局域网较为单一的环
31、境要求。文件传输的过程中流程为首先客端的主机通过 tcp/ip 协议建立链接,然后客户机发送套节字请求,通过 3 次握手连接响应,再转换数据为 socket 流传送,最近通过 3 次握手断开连接响应。选择用户并拖入相应所要传送的文件及文件夹,如图 9 所示:图 9 文件传输界面点击所发送的文件为文件另存为,界面如图 10 所示:第 11 页 共 20 页图 10 选择存储路径选择路径确定后,文件开始传输。其传送界面,如图 11 所示:图 11 文件传输中实现的主要代码为:void tsenddlg:initializeheader(void)intordermax_sendwidth;intr
32、evitemsmax_sendwidth;while (maxitems 0)senddlgitemmessage(host_list, lvm_deletecolumn, -maxitems, 0);columnitems = cfg-columnitems & (1 sendorder, sizeof(fullorder);for (int cnt=0; cnt max_sendwidth; cnt+) if (getitem(columnitems, cnt) itemsmaxitems = cnt;revitemscnt = maxitems+;intordercnt = 0;
33、for (cnt=0; cnt glidlinecheck)style |= lvs_ex_gridlines;elsestyle &= lvs_ex_gridlines;senddlgitemmessage(host_list, lvm_setextendedlistviewstyle, 0, style);static char*headerstrmax_sendwidth;.5 用户密封或加锁传输文件用户密封或加锁传输文件文件传输模块实现主要依靠发送端与接收端建立有效的连接后,客户端不断地向 socket 写入文件流,服务器端不断接受来自客户端的 socket 文件流。直到文件传输完毕关闭套节字连接并释放空间。密封和加锁主要是通过程序的插件对所传送的文件加以密封,加密,以便确保文件的安全性。点击 open (files)按钮,界面如图 12 所示:第 13 页 共 20 页图 12 文件传输界面用户接收到加锁的文件图 13 加锁信息接收界面其中主要代码为:bool tregistry:deletechildtree(lpstr subkey)charbuf100;bool ret = true;if (subkey != null & openkey(subkey) != tru
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025届西藏那曲地区安多县三年级数学第一学期期末试题含解析
- 行政管理中的现代公共关系学创新试题及答案
- 2025-2026学年贵州省铜仁地区江口县数学三年级第一学期期末教学质量检测模拟试题含解析
- 公共关系学舆情引导试题及答案
- 知名企业家课件
- 行政管理与公共关系的职业路径研究题及答案
- 信息技术行业技术研发工作证明(5篇)
- 《中国古代文学鉴赏:古代文学鉴赏教程》
- 市场渠道分销授权协议签署书
- 眼睛近视的课件
- 大部分分校:地域文化形考任务三-国开(CQ)-国开期末复习资料
- 【MOOC】模拟电子电路实验-东南大学 中国大学慕课MOOC答案
- 信息光学知到智慧树章节测试课后答案2024年秋华南农业大学
- 【MOOC】机械制图-河北工程大学 中国大学慕课MOOC答案
- 2023年上海市浦东新区中考语文二模试卷
- 市场经理招聘面试题与参考回答(某大型国企)2024年
- GB/T 10433-2024紧固件电弧螺柱焊用螺柱和瓷环
- 《人工智能基础》课件-AI的前世今生:她从哪里来
- AI新技术智慧树知到期末考试答案章节答案2024年长春职业技术学院
- 国企集团公司各岗位廉洁风险点防控表格(廉政)范本
- 《高脂血症》课件
评论
0/150
提交评论