
数字热本与变用
应用研究
基于Windows 平台的FTP应用研究与实现
许斌
(海军青岛航保修理厂山东青岛266071)
摘要:本文介绍了基于Windows平台的FTP应用协议的规范和实基础,并探索前述了使用网络编程接口规范WindowsSockets开发FTP应用的研究与实现。
关键词:TCP/IP协议文件传输协议FTPWindowsSockets套接口中图分类号:TP319
文献标识码:A
1引言
文章编号:1007-9416(2013)06-0105-01
被认为是一个ASCII文件传输),使用端口号20的第二个连接被打开,当传输结束时此连接被关闭。FTP客户和服务器在控制连接上
TCP/IP协议栈应用层是超越网络通信机制限制的一层。在
TCP/IP协议栈中有三大基本协议之一文件传输协议FTP使 Internet上任何异构型主机或操作系统之间都能实现相互间的文件传输。它有自已一套独立的命令(或称子命令),独立于各种主机本身的操作系统,是任何用户都可以使用的网络通用命令。研究和开
发在Windows下的网络编程技术具有普通的应用价值,) 2WindowsSockets和FTP应用协议
2.1 Windows Sockets
TCP/IP协议核心作用是对物理网络(物理层和数据链路层)在传输层/网络层建立统一虚拟“逻辑网络”,屏蔽所有物理网络硬件差异,以实现普追的"连通性"。TCP/IP应用中,最普追使用的是 WindowsSocketsAPI编程接口。应用程序调用Windows Sock-ets的API实现相互之闻的通讯。WindowsSockets又利用下层的网络通讯协议功能和操作系统调用实现实际的通讯工作。任何能够与 WindowsSockets兼容实现协同工作的应用程序就被认为是具有 WindowsSockets接口。
2.2基于TCP/IP的FTP应用协议
文件传输协议(FTP)提供文件传输服务,以使在客户和服务器之间拷贝文件,并提供附加的服务以方使文件传输过程。
FTP是基于字符的客户接口,同时使用两个不同TCP连接。"分配号"RFC(评议征求)为FTP分配两个公认端口号。3当FTP服务器模块装人TCP/IP系统时,程序打开端口21,使服务器在此监听。 FTP客户呼叫服务器时,它和端口21建立一个在整鉴个FTP任务过程中都活跃存在的连接。通过该连接,客户被服务器认证,发控制以后所有活动的命令,当客户发命令给服务器请求文件传输时(列目录
服务器 ocke puq
istent) acceptr
阻塞,
等待客户数据
read( 处理服务请求 aritet) close()
建文请求
应
客户机 socket(
connect() wrine)
read() closel
图3-1面向连接的FTP应用时序图
的通信是通过用户协议解释器(客户程序中)和服务器协议解释器间交换命令进行,FTP客户发给服务器的每一个命令必须有至少个来自服务器的应答。应答由一个三个数字的编码和一个文本字符串组成,文本字符串显示给用户看,编码由客户程序解释以决定下一步动作。
2.3套接D
套接口存在于通讯域中,是通讯的基石,一个正在被使用的套接口都有它的类型和与其相关的进程。套接口通常和同一个域中的套接口交换数据(数据交换也可能穿越域的界限,但这时一定要执行某种解释程序)。用户目前可以使用两种套接口,即流套接口和数据报套接口。流套接口提供了双向的,有序的,无重复并且无记录边界的数据流服务。数据报套接口支持双向的数据流,但并不保证是可靠,有序,无重复的。4
3面向连接的FTP编程应用
面向连接并发服务器处理请求往往比较复杂,不是单一往返请求应答,图3一1为其时序表示。在FTP应用中,套接口工作为服务器先启动,调用socket()建立套接口,再调用bind()将该套接口和本地网络地址联系一起,调用listenO使套接口做好侦听准备,并规定它请求队列长度,使用accept()来接收连接。客户建立套接口后调用 connectO和服务器建立控制连接。待客户端退出后,调用close()关闭此套接口(在Windows中,应调用closesocketO),在FTP应用程序缩写中,要注意它同时使用了两个不同的TCP连接,即控制连接和数据连接。数据连接一且建立,客户机和服务器之闻通过调用read O和writeO来发送和接收数据,数据连接仅在传输数据过程中有效,控制连接在客户与某一服务器建立连接后直至客户发“QUIT"命令前都有效。使用异步套接字模式,以连接到FTP服务器,发送命令和接收应答,实现各类文件操作功能。对客户端,经优化在异步模式
下,最大实现数据高效传输。4) 4结语
本文主要论述了使用WindowsSockets开发FTP应用的研究与实现。FTP是TCP/IP上一个非常典型应用。采用流套接口,实现了接收不同长度数据流。并且有较完善的错误处理机制,能给出网络错误的消息描述,随着Intermet的不断发展和Windows平台的普
及,基于Winsock接口这样的网络编程也会显得越发重要。参考文献
[1]胡道元.计算机局域网[M.清华大学出版社,1990.9.
[2]美]Craig Zacker著.TCP/IP网络管理[M].中国水利水电出版社, 1998.8
[3]燕存正,陈方勇编.实用网络技术教程[M.电子工业出版社,1997.10.[4]未三元等编著.网络通信软件设计指南[M].清华大学出版社,1994.
105