优秀的毕业设计论文网
计算机 JAVA 电子信息 单片机 机械机电 模具 土木工程 建筑结构 论文
热门搜索词:网络 ASP.NET 汽车 电气 数控 PLC

用winsock开发FTP客户端软件

以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
  
资料介绍:

编程方法比较
目前流行的FTP应用程序有很多,在服务器端程序中,使用比较频繁的如Serv-U,它的功能就非常强大,而且设置简单,性能稳定,本客户端程序在测试时就是在本机上安装了serv_U软件来设置一个FTP站点。同样客户端程序也有很多,WS_FTP是其中资格比较老的一个,CuteFTP相对年轻一些,而后来的Bullet Proof FTP、LeapFTP和LeechFTP就属于比较前卫的了。如果在windows操作系统中安装了TCP/IP协议,也会有一个Windows内置的FTP客户端应用程序。另外,大部分浏览器,如IE、Netscape也支持FTP协议。
Microsoft公司推出的可视化编程开发程序Visual Basic提供面向对象的可视化设计工具,具有事件驱动的编程机制(根据单个控件来编写程序代码,缩短了程序的复杂性,增强了程序的可修改性),提供了易学易用的设计界面,编写代码,调试程序的开发环境和完备的帮助文件,是比较不错的开发软件。下面我们来比较一下两种用VB编写FTP客户端程序的方法:
4.1通过INTERNET TRANSFER控件来开发FTP
Internet Transfer控件是VB自带的,它主要支持HTTP协议和FTP协议,使用起来比较简单,只需要掌握它的一些属性和方法,就可以很方便地连接到其他到FTP站点上。但是使用这个控件的灵活性并不大,而且功能有限。所以要编写一个完整的客户端程序,不太能胜任,而对于集成于其他应用程序内部的FTP程序可以使用该空间,如公司内一个终端计算机每天要把使用者的使用情况日志上报给公司的总部,就可以在程序内部使用该控件实现文件的上载。

[来源:http://think58.com]

4.2 通过WINSOCK对象开发FTP
winsock对象开发FTP客户端程序比较灵活,比第一种方法更高级些,它具体涉及到FTP协议的底层工作模式,能捕捉到各个状态,有效地进行各种错误处理。而且它还能自定义协议,只要服务器增加了新的协议,虽然不是标准的,但只要开发者知道这些协议,就能开发扩展FTP。因此该方法适合用来开发比较完美的FTP客户端程序。本例就是通过winsock对象来开发的。 内容来自think58
[版权所有:http://think58.com]

5   winsock简介
我们目前绝大部分应用程序都是利用SOCKET来进行的,在windows操作系统中,称为winsock开发。对于众多的底层网络协议,winsock是访问他们的首选接口。从1991年的1.0版到1995年的2.0.8版,经过不断完善已成为Windows网络编程的事实上的标准。
Windows socket规范是建立在Bekeley套接口模型上的,这个模型现在已是TCP/IP网络的标准。它不仅包含了人们所熟悉的Berkeley Socket风格的库函数;也包含了一组针对Windows的扩展库函数,以使程序员能充分地利用Windows消息驱动机制进行编程。在win32环境中,winsock接口最终成为一个真正与协议无关的接口。Windows Sockets规范定义并记录了如何使用API与Internet协议族(IPS,通常我们指的是TCP/IP)连接,并且所有的Windows Sockets实现都支持流式套接口和数据报套接口.
流式套接字(SOCK_STREAM):该类套接字提供了面向连接的、可靠的、数据无错并且无重复的数据发送服务。而且发送的数据是按顺序接收的。所有利用该套接字进行传递的数据均被视为连续的字节流并且无长度限制。这对数据的稳定性、正确性和发送/ 接受顺序要求严格的文件传输十分适用,TCP 协议使用该类接口。但其对线路的占用率相对较高。流式套接字的实现十分广泛,如远程登录(TELNET)、文件传输协议(FTP)等均使用了流式套接字。 内容来自think58

[资料来源:THINK58.com]

数据报式套接字(SOCK_DGRAM):数据报式套接字提供了面向无连接的服务 , 它独立的数据包形式发送数据( 数据包长度不能大于32KB),不提供正确性检查,也不保证各数据包的发送顺序,因此,可能出现数据的重发、丢失等现象,并且接收顺序由具体路由决定。然而,数据报的实现对网络线路占用率较低。NFS(网络文件系统)即是采用此类套接字、在TCP/IP 协议族中,UDP(User Datagram Protocol)使用该类接口。
对于C/S 体系结构,即客户端向服务器发出请求,服务器只有在接收到请求后才能提供相应服务。双方在建立对话前, 服务进程和接受服务的进程( 客户)必须首先建立起各自用于网间进程通信的半相关,即一个三元组( 协议,本地地址,本地端口),但只有双方独立的半相关还不能建立起沟通。一个完整的网络通信进程必须通过由两个独立进程组成的一个完整的全相关方能实现,而且,只有两个性质相同的半相关才能建立一个完整的全相关五元组─ ─(协议,本地地址,本地端口,远地地址,远地端口),由此方能建立起一个网间进程通信的实例。
结合本人编写的FTP客户端程序,我们具体来看一下C/S 模式下,Windows Sockets 流式套接字建立网络进程间对话的过程。
服务器端进程:
首先启动服务器,以提供相应服务: 本文来自think58
[资料来源:http://THINK58.com]

--- 1)打开一个通信通道并通知网络:本机将在某一公认的端口上等待客户(Client)请求;
--- 2)服务器进入阻塞等待状态,等待客户请求的到来;
--- 3)当服务器接收到一个客户的连接请求时, 激活一个新的进程用于处理客户请求并建立C/S 对话,服务完成后 ,关闭此新进程与户的通信链路, 并终止;
--- 4)返回第(2)步,等待另一客户请求;
--- 5)关闭服务器。
----(客户端进程:
--- 1)指定想与之建立连接的服务器相应服务的保留端口号;
--- 2)向服务器发送CONNECT 请求并等待服务器的应答;
--- 3)接收到服务器建立连接的响应后接受服务器相应服务;
--- 4)服务请求结束后关闭通信通道并终止。
[资料来源:http://www.THINK58.com]