《毕业论文-局域网文件传输.doc》由会员分享,可在线阅读,更多相关《毕业论文-局域网文件传输.doc(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、SelectionParagraphFormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPointselectionParagraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaphFormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesTSelectionParbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
2、agraphFoLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPointse11111111111111111111111111111111lectionParagraphFormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPoctionParagraphFormatLineSpaci2222222222222222222222ngLinesToPoints2SelectionParagraphFormatLineSp
3、acingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPointselectionParagraphFccccccccccccccccccccccccccccccccccccccccccccccccccccccccormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPoctionParagraSelec 哈尔滨理工大学 学 年设计题目: 局域网文件传输 院 系: 计算机科学与技术学院 网络工程系姓名: 申文龙指导教师: 李 朴成 绩: 20
4、10年 09 月17日1SelectionParagraphFormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPointselectionParagraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaphFormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesTSelectionParbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
5、bbbbbbbbbbbbagraphFoLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPointse11111111111111111111111111111111lectionParagraphFormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPoctionParagraphFormatLineSpaci2222222222222222222222ngLinesToPoints2SelectionParagraph
6、FormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPointselectionParagraphFccccccccccccccccccccccccccccccccccccccccccccccccccccccccormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPoctionParagraSelec 网络工程专业学年设计论文局域网文件传输的设计与实现摘 要随着互联网技术的迅猛发展,计算机通信给人类文明带来了翻天覆
7、地的变化。很多情况下,人们的日常工作需要借助文件传输来完成。但大多数文件传输功能都需要借助移动磁盘等硬件设备或Internet上的服务器才能实现。这就给那些具有大规模内部网络的用户造成了许多问题,如浪费资金、浪费网络资源、病毒入侵、降低了工作效率等。为了方便局域网内主机的资源共享,需要开发一个基于局域网的文件传输工具,在内部网络中实现文件交换。基于局域网的文件传输系统的设计选用Virtual Studio 2008 为开发工具,以C/S模式通过建立Socket连接后实现局域网快速,准确,安全的点对点文件以及文件夹传输功能。本系统能够促进局域网内用户之间的文件资源共享,满足主机之间信息交流,确保
8、文件及文件夹传输安全性,有效地提高工作效率。设计共分为五大模块,分别为:一、介绍选题背景及意义和国内外研究现状;二、介绍TCP/IP点对点协议技术,C/S架构的MFC程序设计技术和Socket网络编程技术;三、对当前局域网文件传输进行需求分析并提出解决方案;四、根据解决方案对系统进行设计;五、对基于局域网的文件传输系统进行测试并得到测试结果。关键词 C/S结构;网络通讯组件;点对点;Socket连接LAN Design and Implementation of File TransferAbstractWith the rapid development of Internet techno
9、logy, computer communications to the human civilization has brought tremendous changes. In many cases, peoples daily work to be done with the file transfer. However, most file transfer needs with a removable disk and other hardware devices or servers on the Internet can be achieved. This internal ne
10、twork to those users with large-scale caused many problems, such as a waste of money, a waste of network resources, virus attacks, reduced work efficiency. In order to facilitate resource sharing on machines within the LAN, you need to develop a LAN-based file transfer tool, in the internal network
11、for file exchange. LAN-based file transfer system designed for the selection of Virtual Studio 2008 development tools to C / S mode to achieve through the establishment of local area network Socket connection fast, accurate and secure files and folders point to point transmission. The system can pro
12、mote the local area network file sharing between users, to meet the information exchange between the host, transfer files and folders to ensure safety, effectively improve the work efficiency. Design is divided into five modules, namely: I, introduce the research background and significance and rese
13、arch status; II introduces TCP / IP point to point protocol technology, C / S architecture MFC Socket programming techniques and network programming ; III LAN file transfer on the current needs analysis and propose solutions; four, according to the system design solution; five, LAN-based file transf
14、er system to test and get test results.Keywords C- II - / S structure;network communication components; point; Socket Connection 目 录摘要IAbstractII第1章 绪论11.1 选题目的和意义11.2 国内外文献综述11.3 论文研究内容1第2章 网络相关知识32.1 TCP/IP协议32.2 主要协议32.2.1 IP协议32.2.2 TCP协议42.2.3 UDP42.2.4 ICMP42.3 TCP/IP端口42.4 IP地址52.5 C/S构架52.5.
15、1 C/S架构软件的优势与劣势52.6 客户端(Client)62.7 服务器(Server)62.8 Socket编程62.9 主要函数介绍72.9.1 Accept72.9.2 Bind72.9.3 connect82.9.4 htonl92.9.5 Htons92.9.6 inet_addr 92.9.7 inet_aton 92.9.8 inet_ntoa102.9.9 listen102.10 本章小结10第3章 文件传输113.1 文件传输的软件113.2 文件传输的测试113.2.1 打开文件113.2.2 设置服务器123.2.3 传输准备133.2.4 实现传输133.3 本
16、章小结13第4章 软件设计144.1 客户端设计144.2 服务器设计144.3 自定义消息144.4 消息映射154.5 消息处理函数15第5章 结 论16参考文献1717第1章 绪论1.1 选题目的和意义随着网络通信技术的发展与用户需求日益多样化,现代局域网络正处在变革与发展之中,本课题的主要目的之一是为了更清晰地培养学生掌握科学研究方法的能力和使学生迅速体会文件传输系统的研发过程。基于局域网的文件传输系统能够让家庭网络以及各个企业等局域网对内部资料有一个快捷,准确,安全的共享。特别是对如今较大系统研发的模块分工合作得到了绝对保密性,从而使各项工作有计划、更科学的进行及顺利完成,使企业的办
17、事效率得到显著提高。文件传输系统主要功能是用户确定的主机名,IP地址以及工作组名字,最终以C/S模式通过TCP/IP协议实现点到点文件传输功能。本系统既锻炼了我们的实际动手能力,使我们将大学四年所学的理论知识与实际开发相结合,又引导我们进行了一次模拟实际产品的开发,对于我们以后工作能力的培养具有重要的意义。1.2 国内外文献综述目前,国内外企业对局域网的文件传输系统认识和使用情况并不好,各个企业单位在局域网内实现文件传输,资源共享还有很大的缺陷。技术无论是从理论上或实践上都还不够完善。文件传输系统由于比较复杂,可变因素较多,安全性低,因此发展还不成熟。但是随着科学技术的发展,各种以局域网为单位
18、的文件传输系统已经进入稳健发展期,比如说市面上比较普遍使用的QQ、UC、飞鸽传书等以内部网络为中心的资源共享系统也即将进入高速发展期。在国内,随着企业资源管理的规范化和规模的不断扩大,企业的计算机资源管理将不仅仅停留在依靠硬件或者Internet网络获取,而且将会向着安全的内部网络化资源管理方式迈进。1.3 论文研究内容计算机文件属于文件的一种,与普通文件载体不同,计算机文件是以计算机硬盘为载体存储在计算机上的信息集合。文件可以是文本文档、图片、程序等等。文件通常具有三个字母的文件扩展名,用于指示文件类型(例如,图片文件常常以 JPEG 格式保存并且文件扩展名为 .jpg)。文件传输需要经过两
19、个步骤,一是网络的链接;二是文件的传输。本文提出的方案主要是在满足局域网内链路状态良好,ip地址已知的条件下的文件传输。主要步骤如下:1. 运行软件,建立服务器2打开所要发送的文件,使其处于准备状态3. 输入IP地址、端口号,链接服务器4. 发送文件第2章 网络相关知识本章主要介绍一些TCP/IP协议、C/S构架、socket网络编程技术2.1 TCP/IP协议 TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层、网络层、传输
20、层、会话层、表示层和应用层。而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为:应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。传输层:在此层中,它提供了节点间的数据传送,应用程序之间的通信服务,主要功能是数据格式化、数据确认和丢失重传等。如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的
21、主机(但不检查是否被正确接收),如网际协议(IP)。网络接口层(主机-网络层):接收IP数据报并进行传输,从网络上接收物理帧,抽取IP数据报转交给下一层,对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。 2.2 主要协议2.2.1 IP协议网际协议IP是TCP/IP的心脏,也是网络层中最重要的协议。IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层-TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是按顺序发送
22、的或者没有被破坏。IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。高层的TCP和UDP服务在接收数据包时,通常假设包中的源地址是有效的。也可以这样说,IP地址形成了许多服务的认证基础,这些服务相信数据包是从一个有效的主机发送来的。IP确认包含一个选项,叫作IP source routing,可以用来指定一条源地址和目的地址之间的直接路径。对于一些TCP和UDP的服务来说,使用了该选项的IP包好像是从路径上的最后一个系统传递过来的,而不是来自于它的真实地点。这个选项是为了测试而存在的,说明了它可以被用来欺骗系统来进行平常是被禁止的连接。那么,许多依靠IP源地址做确认
23、的服务将产生问题并且会被非法入侵。2.2.2 TCP协议如果IP数据包中有已经封好的TCP数据包,那么IP将把它们向上传送到TCP层。TCP将包排序并进行错误检查,同时实现虚电路间的连接。TCP数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。TCP将它的信息送到更高层的应用程序,例如Telnet的服务程序和客户程序。应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层,设备驱动程序和物理介质,最后到接收方。面向连接的服务(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它们使用了TCP。DNS在某些情况下使
24、用TCP(发送和接收域名数据库),但使用UDP传送有关单个主机的信息。2.2.3 UDPUDP与TCP位于同一层,但它不管数据包的顺序、错误或重发。因此,UDP不被应用于那些使用虚电路的面向连接的服务,UDP主要用于那些面向查询-应答的服务,例如NFS。相对于FTP或Telnet,这些服务需要交换的信息量较小。使用UDP的服务包括NTP(网络时间协议)和DNS(DNS也使用TCP)。欺骗UDP包比欺骗TCP包更容易,因为UDP没有建立初始化连接(也可以称为握手)(因为在两个系统间没有虚电路),也就是说,与UDP相关的服务面临着更大的危险。2.2.4 ICMPICMP与IP位于同一层,它被用来传
25、送IP的的控制信息。它主要是用来提供有关通向目的地址的路径信息。ICMP的Redirect信息通知主机通向其他系统的更准确的路径,而Unreachable信息则指出路径有问题。另外,如果路径不可用了,ICMP可以使TCP连接体面地终止。PING是最常用的基于ICMP的服务。 2.3 TCP/IP端口TCP和UDP服务通常有一个客户/服务器的关系,例如,一个Telnet服务进程开始在系统上处于空闲状态,等待着连接。用户使用Telnet客户程序与服务进程建立一个连接。客户程序向服务进程写入信息,服务进程读出信息并发出响应,客户程序读出响应并向用户报告。因而,这个连接是双工的,可以用来进行读写。两个
26、系统间的多重Telnet连接是如何相互确认并协调一致呢?TCP或UDP连接唯一地使用每个信息中的如下四项进行确认:源IP地址 发送包的IP地址。目的IP地址 接收包的IP地址。源端口 源系统上的连接的端口。目的端口 目的系统上的连接的端口。端口是一个软件结构,被客户程序或服务进程用来发送和接收信息。一个端口对应一个16比特的数。服务进程通常使用一个固定的端口,例如,SMTP使用25、Xwindows使用6000。这些端口号是广为人知的,因为在建立与特定的主机或服务的连接时,需要这些地址和目的地址进行通讯。 2.4 IP地址在Internet上连接的所有计算机,从大型机到微型计算机都是以独立的身
27、份出现,我们称它为主机。为了实现各主机间的通信,每台主机都必须有一个唯一的网络地址。就好像每一个住宅都有唯一的门牌一样,才不至于在传输资料时出现混乱。Internet的网络地址是指连入Internet网络的计算机的地址编号。所以,在Internet网络中,网络地址唯一地标识一台计算机。我们都已经知道,Internet是由几千万台计算机互相连接而成的。而我们要确认网络上的每一台计算机,靠的就是能唯一标识该计算机的网络地址,这个地址就叫做IP(Internet Protocol的简写)地址,即用Internet协议语言表示的地址。目前,在Internet里,IP地址是一个32位的二进制地址,为了便
28、于记忆,将它们分为4组,每组8位,由小数点分开,用四个字节来表示,而且,用点分开的每个字节的数值范围是0255,如202.116.0.1,这种书写方法叫做点数表示法。 2.5 C/S构架C/S(Client/Server)结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server应用都可以进行同样的业务处理,应用不同的模块共享逻
29、辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。 2.5.1 C/S架构软件的优势与劣势2.5.1.1 应用服务器运行数据负荷较轻最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。二者可分别称为前台程序与后台程序。运行数据库服务器程序的机器,也称为应用服务器。一旦服务器程序被启动,就随时等待响应客户程序发来的请求;客户应用程序运行在用户自己的电脑上,对应于数据库服务器,可称为客户电脑,当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求
30、,服务器程序根据预定的规则作出应答,送回结果,应用服务器运行数据负荷较轻。2.5.1.2 数据的储存管理功能较为透明在数据库应用中,数据的储存管理功能,是由服务器程序和客户应用程序分别独立进行的,前台应用可以违反的规则,并且通常把那些不同的(不管是已知还是未知的)运行数据,在服务器程序中不集中实现,例如访问者的权限,编号可以重复、必须有客户才能建立定单这样的规则。所有这些,对于工作在前台程序上的最终用户,是“透明”的,他们无须过问(通常也无法干涉)背后的过程,就可以完成自己的一切工作。在客户服务器架构的应用中,前台程序不是非常“瘦小”,麻烦的事情都交给了服务器和网络。在C/S体系的下,数据库不
31、能真正成为公共、专业化的仓库,它受到独立的专门管理。2.5.1.3 C/S架构的劣势是高昂的维护成本且投资大首先,采用C/S架构,要选择适当的数据库平台来实现数据库数据的真正“统一”,使分布于两地的数据同步完全交由数据库系统去管理,但逻辑上两地的操作者要直接访问同一个数据库才能有效实现,有这样一些问题,如果需要建立“实时”的数据同步,就必须在两地间建立实时的通讯连接,保持两地的数据库服务器在线运行,网络管理工作人员既要对服务器维护管理,又要对客户端维护和管理,这需要高昂的投资和复杂的技术支持,维护成本很高,维护任务量大。其次,传统的C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,
32、由于产品的更新换代十分快,代价高和低效率已经不适应工作需要。在JAVA这样的跨平台语言出现之后,B/S架构更是猛烈冲击C/S,并对其形成威胁和挑战。2.6 客户端(Client)客户端(Client)或称为用户端,是指与服务器相对应,为客户提供本地服务的程序。一般安装在普通的客户机上,需要与服务端互相配合运行。因特网发展以后,较常用的用户端包括了如万维网使用的网页浏览器,收寄电子邮件时的电子邮件客户端,以及即时通讯的客户端软件等。2.7 服务器(Server)服务器指一个管理资源并为用户提供服务的计算机软件,通常分为文件服务器、数据库服务器和应用程序服务器。运行以上软件的计算机或计算机系统也被
33、称为服务器。相对于普通PC来说,服务器在稳定性、安全性、性能等方面都要求更高,因此CPU、芯片组、内存、磁盘系统、网络等硬件和普通PC有所不同。2.8 Socket编程以U.C. Berkeley大学BSD UNIX中流行的Socket接口为范例定义了一套microsoft Windows下网络编程接口。它不仅包含了人们所熟悉的Berkeley Socket风格的库函数;也包含了一组针对Windows的扩展库函数,以使程序员能充分地利用Windows消息驱动机制进行编程。Windows Sockets规范本意在于提供给应用程序开发者一套简单的API,并让各家网络软件供应商共同遵守。此外,在一个
34、特定版本Windows的基础上,Windows Sockets也定义了一个二进制接口(ABI),以此来保证应用Windows Sockets API的应用程序能够在任何网络软件供应商的符合Windows Sockets协议的实现上工作。因此这份规范定义了应用程序开发者能够使用,并且网络软件供应商能够实现的一套库函数调用和相关语义。遵守这套Windows Sockets规范的网络软件,我们称之为Windows Sockets兼容的,而Windows Sockets兼容实现的提供者,我们称之为Windows Sockets提供者。一个网络软件供应商必须百分之百地实现Windows Sockets规
35、范才能做到现Windows Sockets兼容。任何能够与Windows Sockets兼容实现协同工作的应用程序就被认为是具有Windows Sockets接口。我们称这种应用程序为Windows Sockets应用程序。Windows Sockets规范定义并记录了如何使用API与Internet协议族(IPS,通常我们指的是TCP/IP)连接,尤其要指出的是所有的Windows Sockets实现都支持流套接口和数据报套接口.应用程序调用Windows Sockets的API实现相互之间的通讯。Windows Sockets又利用下层的网络通讯协议功能和操作系统调用实现实际的通讯工作。
36、2.9 主要函数介绍2.9.1 Accept定义函数intaccept(ints,structsockaddr*addr,int*addrlen);函数说明accept()用来接受参数s的socket连线。参数s的socket必需先经bind()、listen()函数处理过,当有连线进来时accept()会返回一个新的socket处理代码,往后的数据传送与读取就是经由新的socket处理,而原来参数s的socket能继续使用accept()来接受新的连线要求。连线成功时,参数addr所指的结构会被系统填入远程主机的地址数据,参数addrlen为scokaddr的结构长度。返回值成功则返回新的s
37、ocket处理代码,失败返回-1,错误原因存于errno中。错误代码EBADF参数s非合法socket处理代码。EFAULT参数addr指针指向无法存取的内存空间。ENOTSOCK参数s为一文件描述词,非socket。EOPNOTSUPP指定的socket并非SOCK_STREAM。EPERM防火墙拒绝此连线。ENOBUFS系统的缓冲内存不足。ENOMEM核心内存不足。2.9.2 Bind定义函数intbind(intsockfd,structsockaddr*my_addr,intaddrlen);函数说明bind()用来设置给参数sockfd的socket一个名称。此名称由参数my_add
38、r指向一sockaddr结构,对于不同的socketdomain定义了一个通用的数据结构:structsockaddrunsignedshortintsa_family;charsa_data14;sa_family为调用socket()时的domain参数,即AF_xxxx值。sa_data最多使用14个字符长度。此sockaddr结构会因使用不同的socketdomain而有不同结构定义,例如使用AF_INETdomain,其socketaddr结构定义便为:structsocketaddr_inunsignedshortintsin_family;uint16_tsin_port;str
39、uctin_addrsin_addr;unsignedcharsin_zero8;structin_addruint32_ts_addr;sin_family即为sa_familysin_port为使用的port编号sin_addr.s_addr为IP地址sin_zero未使用。参数addrlen为sockaddr的结构长度。返回值成功则返回0,失败返回-1,错误原因存于errno中。错误代码:EBADF参数sockfd非合法socket处理代码。EACCESS权限不足ENOTSOCK参数sockfd为一文件描述词,非socket。2.9.3 connect 定义函数intconnect(in
40、tsockfd,structsockaddr*serv_addr,intaddrlen);函数说明connect()用来将参数sockfd的socket连至参数serv_addr指定的网络地址。结构sockaddr请参考bind()。参数addrlen为sockaddr的结构长度。返回值成功则返回0,失败返回-1,错误原因存于errno中。错误代码EBADF参数sockfd非合法socket处理代码EFAULT参数serv_addr指针指向无法存取的内存空间ENOTSOCK参数sockfd为一文件描述词,非socket。EISCONN参数sockfd的socket已是连线状态ECONNREFU
41、SED连线要求被server端拒绝。ETIMEDOUT企图连线的操作超过限定时间仍未有响应。ENETUNREACH无法传送数据包至指定的主机。EAFNOSUPPORTsockaddr结构的sa_family不正确。EALREADYsocket为不可阻断且先前的连线操作还未完成。2.9.4 htonl定义函数unsignedlonginthtonl(unsignedlonginthostlong);函数说明htonl()用来将参数指定的32位hostlong转换成网络字符顺序。返回值返回对应的网络字符顺序。2.9.5 Htons定义函数unsignedshortinthtons(unsigned
42、shortinthostshort);函数说明htons()用来将参数指定的16位hostshort转换成网络字符顺序。返回值返回对应的网络字符顺序。2.9.6 inet_addr定义函数unsignedlongintinet_addr(constchar*cp);函数说明inet_addr()用来将参数cp所指的网络地址字符串转换成网络所使用的二进制数字。网络地址字符串是以数字和点组成的字符串,例如:“163.13.132.68”。返回值成功则返回对应的网络二进制的数字,失败返回-1。2.9.7 inet_aton定义函数intinet_aton(constchar*cp,structin_
43、addr*inp);函数说明inet_aton()用来将参数cp所指的网络地址字符串转换成网络使用的二进制的数字,然后存于参数inp所指的in_addr结构中。结构in_addr定义如下structin_addrunsignedlongints_addr;返回值成功则返回非0值,失败则返回0。2.9.8 inet_ntoa定义函数char*inet_ntoa(structin_addrin);函数说明inet_ntoa()用来将参数in所指的网络二进制的数字转换成网络地址,然后将指向此网络地址字符串的指针返回。返回值成功则返回字符串指针,失败则返回NULL。2.9.9 listen定义函数in
44、tlisten(ints,intbacklog);函数说明listen()用来等待参数s的socket连线。参数backlog指定同时能处理的最大连接要求,如果连接数目达此上限则client端将收到ECONNREFUSED的错误。Listen()并未开始接收连线,只是设置socket为listen模式,真正接收client端连线的是accept()。通常listen()会在socket(),bind()之后调用,接着才调用accept()。返回值成功则返回0,失败返回-1,错误原因存于errno附加说明listen()只适用SOCK_STREAM或SOCK_SEQPACKET的socket类型
45、。如果socket为AF_INET则参数backlog最大值可设至128。错误代码EBADF参数sockfd非合法socket处理代码EACCESS权限不足EOPNOTSUPP指定的socket并未支援listen模式。2.10 本章小结本章主要介绍了关于网络的知识,TCP/Ip协议的主要内容和组成形式,C/S模式的内容,Winsock的简单介绍。第3章 文件传输3.1 文件传输的软件本次测试所需要的软件如图3-1所示。图3-1软件图标和运行情况3.2 文件传输的测试3.2.1 打开文件单击Open按钮,如图3-2,在弹出的打开文件对话框中选择你所要传输的文件。单击确认。 图3-2Open按钮打开文件图3-3选择文件图3-4文件选择成功3.2.2 设置服务器在同一局域网的另一台及其上再运行一次此软件,并设置成服务器。如图3-5。图3-5设置成服务器3.2.3 传输准备输入IP地址和端口号。如图3-6图3-63.2.4 实现传输单击Trans按钮,完成传输。如图3-6。图3-63.3 本章小结 本章测试了所编写的程序,简述了软件的操作过程,并给出了程序运行的结果。第4章 软件设计软件采用面向对像的设计方法,考虑到对计算效率的要求,采用C+编程语言,开发环境为Windows