FTP协议实现程序文件.docx

上传人:b****0 文档编号:16906125 上传时间:2023-07-19 格式:DOCX 页数:33 大小:73.87KB
下载 相关 举报
FTP协议实现程序文件.docx_第1页
第1页 / 共33页
FTP协议实现程序文件.docx_第2页
第2页 / 共33页
FTP协议实现程序文件.docx_第3页
第3页 / 共33页
FTP协议实现程序文件.docx_第4页
第4页 / 共33页
FTP协议实现程序文件.docx_第5页
第5页 / 共33页
FTP协议实现程序文件.docx_第6页
第6页 / 共33页
FTP协议实现程序文件.docx_第7页
第7页 / 共33页
FTP协议实现程序文件.docx_第8页
第8页 / 共33页
FTP协议实现程序文件.docx_第9页
第9页 / 共33页
FTP协议实现程序文件.docx_第10页
第10页 / 共33页
FTP协议实现程序文件.docx_第11页
第11页 / 共33页
FTP协议实现程序文件.docx_第12页
第12页 / 共33页
FTP协议实现程序文件.docx_第13页
第13页 / 共33页
FTP协议实现程序文件.docx_第14页
第14页 / 共33页
FTP协议实现程序文件.docx_第15页
第15页 / 共33页
FTP协议实现程序文件.docx_第16页
第16页 / 共33页
FTP协议实现程序文件.docx_第17页
第17页 / 共33页
FTP协议实现程序文件.docx_第18页
第18页 / 共33页
FTP协议实现程序文件.docx_第19页
第19页 / 共33页
FTP协议实现程序文件.docx_第20页
第20页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

FTP协议实现程序文件.docx

《FTP协议实现程序文件.docx》由会员分享,可在线阅读,更多相关《FTP协议实现程序文件.docx(33页珍藏版)》请在冰点文库上搜索。

FTP协议实现程序文件.docx

FTP协议实现程序文件

课题:

FTP协议实现程序

选题

1.课程设计目的

本课程设计设计需要编写程序,对FPT协议有非常清楚的认识

2.课程设计要求

完成应用层协议的基本工作模型,规划客户,服务器的基本结构与模块组成,完成应用层协议设计,网络应用软件设计方法与编程。

FTP功能模块及原理

1.FPT基本原理

FTP使用两条Tcp连接来完成文件传输,控制连接与数据连接。

控制连接用与传输控制,数据连接用于数据传输。

在服务器启动后,服务器会在端口21等待客户的连接请求,有用户需要传输文件时,客户与服务器的端口21建立一个控制连接,用来传送客户的命令和服务器的应答,是连接一直保持到客户与服务器通信结果为止。

当客户发出数据传输命令时,服务器会主动与客户建立数据连接,并与其进行数据交换。

2.FTP功能模块

 

FTP功能模块及FTP连接

1程序功能的介绍

1)FTP连接

进行FTP连接,首先要给出目的计算机的名称或地址,当连接到信宿机后,一般要进行登录,在检验用户ID号和口令后,连接才得以建立,某些系统也允许用户进行匿名登录。

与在所有的多用户系统中一样,对于同一目录或文件,不同的用户拥有不同的权限,所以在使用过程中,需要验证权限。

2)文件传输方式

FTP可用多种格式传输文件,通常由系统定,大多数系统(包括UNIX系统)只有两种模式:

文本模式和二进制模式。

文件传输器使用ASCII码,并由回车键和换行符分开,而二进制不用转换或格式化就可以传字符,二进制模式比文本模式更快,并且可以传输所有ASCII值,所以系统管理而一般将FTP设置成二进制模式。

3)断开连接

比较流行的FTP软件,一般有取消传输的指令和重建连接的指令,本程序只有断开连接的指令。

以上三方面是本程序的主要功能,事实上还不够完善。

例如:

显示消息,更改端口等。

 

2程序设计

1)设计界面

如图6-1所示本程序采取单一界面。

界面内的控件采用控件为CommandButton,Line,TextBox,OptionButton,TreeView,DirListBox,FileListBox和DriveListBox。

以下是主要控件的属性列表:

程序主界面控件布置

 

对象

属性

设置值

fmVBFTPJRForm

Caption

VbFTP

CmdInternetOpenCommandButton

Caption

StartInternetSession

TxtProxyTextBox

所有属性

默认

CmdConnectCommandButton

Caption

Connect

ChkPassiveCheckBox

Caption

PassiveFTPsyntax

CmdDisconnectCommandButton

Caption

Disconnect

CmdClosehOpenCommandButton

Caption

CloseInternetSession

TreeView1TreeView

所有属性

默认

OptBinOptionButton

Caption

Binary

optAsciiOptionButton

Caption

Ascii

cmdGetCommandButton

Caption

Download

cmdPutCommandButton

Caption

Upload

Drive1DriveListBox

所有属性

默认

Dir1DirListBox

所有属性

默认

File1FileListBox

所有属性

默认

TxtServerTextBox

Caption

InputIPhere

txtUserTextBox

所有属性

默认

txtPasswordTextBox

Passwordchar

*

控制对象属性列表

3程序

 

AttributeVB_Name="modWinInet"

OptionExplicit

DeclareFunctionGetProcessHeapLib"kernel32"()AsLong

DeclareFunctionHeapAllocLib"kernel32"(ByValhHeapAsLong,ByValdwFlagsAsLong,ByValdwBytesAsLong)AsLong

DeclareFunctionHeapFreeLib"kernel32"(ByValhHeapAsLong,ByValdwFlagsAsLong,lpMemAsAny)AsLong

PublicConstHEAP_ZERO_MEMORY=&H8

PublicConstHEAP_GENERATE_EXCEPTIONS=&H4

DeclareSubCopyMemory1Lib"kernel32"Alias"RtlMoveMemory"(_

hpvDestAsAny,ByValhpvSourceAsLong,ByValcbCopyAsLong)

DeclareSubCopyMemory2Lib"kernel32"Alias"RtlMoveMemory"(_

hpvDestAsLong,hpvSourceAsAny,ByValcbCopyAsLong)

PublicConstMAX_PATH=260

PublicConstNO_ERROR=0

PublicConstFILE_ATTRIBUTE_READONLY=&H1

PublicConstFILE_ATTRIBUTE_HIDDEN=&H2

PublicConstFILE_ATTRIBUTE_SYSTEM=&H4

PublicConstFILE_ATTRIBUTE_DIRECTORY=&H10

PublicConstFILE_ATTRIBUTE_ARCHIVE=&H20

PublicConstFILE_ATTRIBUTE_NORMAL=&H80

PublicConstFILE_ATTRIBUTE_TEMPORARY=&H100

PublicConstFILE_ATTRIBUTE_COMPRESSED=&H800

PublicConstFILE_ATTRIBUTE_OFFLINE=&H1000

 

TypeFILETIME

dwLowDateTimeAsLong

dwHighDateTimeAsLong

EndType

TypeWIN32_FIND_DATA

dwFileAttributesAsLong

ftCreationTimeAsFILETIME

ftLastAccessTimeAsFILETIME

ftLastWriteTimeAsFILETIME

nFileSizeHighAsLong

nFileSizeLowAsLong

dwReserved0AsLong

dwReserved1AsLong

cFileNameAsString*MAX_PATH

cAlternateAsString*14

EndType

 

PublicConstERROR_NO_MORE_FILES=18

PublicDeclareFunctionInternetFindNextFileLib"wininet.dll"Alias"InternetFindNextFileA"_

(ByValhFindAsLong,lpvFindDataAsWIN32_FIND_DATA)AsLong

PublicDeclareFunctionFtpFindFirstFileLib"wininet.dll"Alias"FtpFindFirstFileA"_

(ByValhFtpSessionAsLong,ByVallpszSearchFileAsString,_

lpFindFileDataAsWIN32_FIND_DATA,ByValdwFlagsAsLong,ByValdwContentAsLong)AsLong

PublicDeclareFunctionFtpGetFileLib"wininet.dll"Alias"FtpGetFileA"_

(ByValhFtpSessionAsLong,ByVallpszRemoteFileAsString,_

ByVallpszNewFileAsString,ByValfFailIfExistsAsBoolean,ByValdwFlagsAndAttributesAsLong,_

ByValdwFlagsAsLong,ByValdwContextAsLong)AsBoolean

PublicDeclareFunctionFtpPutFileLib"wininet.dll"Alias"FtpPutFileA"_

(ByValhFtpSessionAsLong,ByVallpszLocalFileAsString,_

ByVallpszRemoteFileAsString,_

ByValdwFlagsAsLong,ByValdwContextAsLong)AsBoolean

PublicDeclareFunctionFtpSetCurrentDirectoryLib"wininet.dll"Alias"FtpSetCurrentDirectoryA"_

(ByValhFtpSessionAsLong,ByVallpszDirectoryAsString)AsBoolean

PublicDeclareFunctionInternetOpenLib"wininet.dll"Alias"InternetOpenA"_

(ByValsAgentAsString,ByVallAccessTypeAsLong,ByValsProxyNameAsString,_

ByValsProxyBypassAsString,ByVallFlagsAsLong)AsLong

PublicConstscUserAgent="vbwininet"

PublicConstINTERNET_OPEN_TYPE_PRECONFIG=0

PublicConstINTERNET_OPEN_TYPE_DIRECT=1

PublicConstINTERNET_OPEN_TYPE_PROXY=3

PublicConstINTERNET_INVALID_PORT_NUMBER=0

PublicConstFTP_TRANSFER_TYPE_ASCII=&H1

PublicConstFTP_TRANSFER_TYPE_BINARY=&H1

PublicConstINTERNET_FLAG_PASSIVE=&H8000000

PublicDeclareFunctionInternetConnectLib"wininet.dll"Alias"InternetConnectA"_

(ByValhInternetSessionAsLong,ByValsServerNameAsString,ByValnServerPortAsInteger,_

ByValsUsernameAsString,ByValsPasswordAsString,ByVallServiceAsLong,_

ByVallFlagsAsLong,ByVallContextAsLong)AsLong

PublicConstERROR_INTERNET_EXTENDED_ERROR=12003

PublicDeclareFunctionInternetGetLastResponseInfoLib"wininet.dll"Alias"InternetGetLastResponseInfoA"(_

lpdwErrorAsLong,_

ByVallpszBufferAsString,_

lpdwBufferLengthAsLong)AsBoolean

PublicConstINTERNET_DEFAULT_FTP_PORT=21

PublicConstINTERNET_DEFAULT_GOPHER_PORT=70

PublicConstINTERNET_DEFAULT_HTTP_PORT=80

PublicConstINTERNET_DEFAULT_HTTPS_PORT=443

PublicConstINTERNET_DEFAULT_SOCKS_PORT=1080

PublicConstINTERNET_OPTION_CONNECT_TIMEOUT=2

PublicConstINTERNET_OPTION_RECEIVE_TIMEOUT=6

PublicConstINTERNET_OPTION_SEND_TIMEOUT=5

PublicConstINTERNET_OPTION_USERNAME=28

PublicConstINTERNET_OPTION_PASSWORD=29

PublicConstINTERNET_OPTION_PROXY_USERNAME=43

PublicConstINTERNET_OPTION_PROXY_PASSWORD=44

PublicConstINTERNET_SERVICE_FTP=1

PublicConstINTERNET_SERVICE_GOPHER=2

PublicConstINTERNET_SERVICE_HTTP=3

PublicDeclareFunctionHttpOpenRequestLib"wininet.dll"Alias"HttpOpenRequestA"_

(ByValhHttpSessionAsLong,ByValsVerbAsString,ByValsObjectNameAsString,ByValsVersionAsString,_

ByValsRefererAsString,ByValsomethingAsLong,ByVallFlagsAsLong,ByVallContextAsLong)AsLong

PublicConstINTERNET_FLAG_RELOAD=&H80000000

PublicConstINTERNET_FLAG_KEEP_CONNECTION=&H400000

PublicConstINTERNET_FLAG_MULTIPART=&H200000

PublicConstGENERIC_READ=&H80000000

PublicConstGENERIC_WRITE=&H40000000

PublicDeclareFunctionHttpSendRequestLib"wininet.dll"Alias"HttpSendRequestA"(ByVal_

hHttpRequestAsLong,ByValsHeadersAsString,ByVallHeadersLengthAsLong,ByValsOptionalAs_

String,ByVallOptionalLengthAsLong)AsInteger

 

PublicDeclareFunctionHttpQueryInfoLib"wininet.dll"Alias"HttpQueryInfoA"_

(ByValhHttpRequestAsLong,ByVallInfoLevelAsLong,ByRefsBufferAsAny,_

ByReflBufferLengthAsLong,ByReflIndexAsLong)AsInteger

PublicConstHTTP_QUERY_CONTENT_TYPE=1

PublicConstHTTP_QUERY_CONTENT_LENGTH=5

PublicConstHTTP_QUERY_EXPIRES=10

PublicConstHTTP_QUERY_LAST_MODIFIED=11

PublicConstHTTP_QUERY_PRAGMA=17

PublicConstHTTP_QUERY_VERSION=18

PublicConstHTTP_QUERY_STATUS_CODE=19

PublicConstHTTP_QUERY_STATUS_TEXT=20

PublicConstHTTP_QUERY_RAW_HEADERS=21

PublicConstHTTP_QUERY_RAW_HEADERS_CRLF=22

PublicConstHTTP_QUERY_FORWARDED=30

PublicConstHTTP_QUERY_SERVER=37

PublicConstHTTP_QUERY_USER_AGENT=39

PublicConstHTTP_QUERY_SET_COOKIE=43

PublicConstHTTP_QUERY_REQUEST_METHOD=45

PublicConstHTTP_STATUS_DENIED=401

PublicConstHTTP_STATUS_PROXY_AUTH_REQ=407

PublicConstHTTP_QUERY_FLAG_REQUEST_HEADERS=&H80000000

PublicConstHTTP_QUERY_FLAG_NUMBER=&H20000000

PublicDeclareFunctionInternetReadFileLib"wininet.dll"_

(ByValhFileAsLong,ByValsBufferAsString,ByVallNumBytesToReadAsLong,_

lNumberOfBytesReadAsLong)AsInteger

PublicDeclareFunctionInternetWriteFileLib"wininet.dll"_

(ByValhFileAsLong,ByValsBufferAsString,_

ByVallNumberOfBytesToReadAsLong,_

lNumberOfBytesReadAsLong)AsInteger

PublicDeclareFunctionFtpOpenFileLib"wininet.dll"Alias_

"FtpOpenFileA"(ByValhFtpSessionAsLong,_

ByValsFileNameAsString,ByVallAccessAsLong,_

ByVallFlagsAsLong,ByVallContextAsLong)AsLong

PublicDeclareFunctionFtpDeleteFileLib"wininet.dll"_

Alias"FtpDeleteFileA"(ByValhFtpSessionAsLong,_

ByVallpszFileNameAsString)AsBoolean

PublicDeclareFunctionInternetSetOptionLib"wininet.dll"Alias"InternetSetOptionA"_

(ByValhInternetAsLong,ByVallOptionAsLong,ByRefsBufferAsAny,ByVallBufferLengthAsLong)AsInteger

PublicDeclareFunctionInternetSetOptionStrLib"wininet.dll"Alias"InternetSetOptionA"_

(ByValhInternetAsLong,ByVallOptionAsLong,ByValsBufferAsString,ByVallBufferLengthAsLong)AsInteger

PublicDeclareFunctionInternetCloseHandleLib"wininet.dll"_

(ByValhInetAsLong)AsInteger

PublicDeclareFunctionInternetQueryOptionLib"wininet.dll"Alias"InternetQueryOptionA"_

(ByValhInternetAsLong,ByVallOptionAsLong,ByRefsBufferAsAny,ByReflBufferLengthAsLong)AsInteger

PublicConstINTERNET_OPTION_VERSION=40

PublicTypetWinInetDLLVersion

lMajorVersionAsLong

lMinorVersionAsLong

EndType

PublicDeclareFunctionHttpAddRequestHeadersLib"wininet.dll"Alias"HttpAddRequestHeadersA"_

(ByValhHttpRequestAsLong,ByValsHeadersAsString,ByVallHeadersLengthAsLong,_

ByVallModifiersAsLong)AsInteger

 

PublicConstHTTP_ADDREQ_FLAG_ADD_IF_NEW=&H10000000

PublicConstHTTP_ADDREQ_FLAG_ADD=&

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2