ftp傳輸數據例子
⑴ 怎麼通過ftp傳送文本文件
不知道你的winsock是udp還是tcpip協議
這里給你一個我寫的實例我是用的udp這個發送了一段數據不一定接收就正確所以我做了校驗

'以下是接收文件的
OptionExplicit
DimFOKAsBoolean,FsAsLong,FileNumberAsInteger,LenFileAsLong '文件的長度
PrivateSubCommand1_Click()
UnloadMe
EndSub
PrivateSubCommand2_Click()
OnErrorResumeNext
DimAAsString
Me.Caption="開始下載"
IfDir(Text2.Text)<>""AndChV.Value=0Then
IfMsgBox("文件已經存在,覆蓋嗎?",vbCritical+vbYesNo)=vbYesThenKillText2.TextElseExitSub
Else
KillText2.Text
EndIf
IfText2.Text=""ThenText2.Text=Text1.Text
'Command2.Enabled=False
IfCh.Value=0ThenA="#DOW#"ElseA="#DOV#"
FMain.Wsk.SendDataA&Text1.Text
Wt1
FMain.Wsk.SendData"#DOE#"&Text2.Text
EndSub
PrivateSubForm_Load()
DimAAsString
'FMain.Ts.Enabled=True
OnErrorResumeNext
IfFMain.Cb.Text="本地組"OrFMain.Cb.Text="全部組"Then
Me.Caption="請重選下載用戶[「組」不能正確下載]"
Else
Command1.Top=-2000
Winsock0.LocalPort=FilePort
Winsock0.Bind
EndIf
EndSub
PrivateSubForm_Unload(CancelAsInteger)
OnErrorResumeNext
Winsock0.Close
Err.Clear
EndSub
PrivateSubLa_Click()
CDL.FileName=""
CDL.ShowOpen
Text2.Text=CDL.FileName
EndSub
PrivateSubWinsock0_DataArrival(ByValbytesTotalAsLong)
OnErrorResumeNext
DimFileByte()AsByte,AAsString,MendByte()AsByte,IAsLong,JAsLong,TempAsString,WAsString
Winsock0.GetDataFileByte,vbArray+vbByte'接收類型為:位元組數組
J=UBound(FileByte)'獲得包長
ForI=0To7Step2'合並包頭
Temp=Temp&Chr(FileByte(I))
Next
ForI=0To9'文件發送結束標記
A=A&Chr(FileByte(I))
Next
IfA="#ERR#"ThenWinsock0.SendData"no"
IfA="#END#"Then
ForI=0ToLen(FMain.TIn.Text)
IfI<100Then
W=Left(Right(FMain.TIn.Text,I),1)
IfW="!"Then
W=Left(Right(FMain.TIn.Text,I+4),5)
ExitFor
EndIf
Else
ExitFor
EndIf
NextI
IfW<>"下載完成!"Then
FOK=False
Me.Caption="下載完成!["&Text2.Text&"]"
FMain.TIn.Text=FMain.TIn.Text&"["&Now&"]"&"下載完成!("&Fs&"<="&LenFile&")"&vbCrLf
Command2.Enabled=True
EndIf
Else
IfVal(Temp)=JThen'比較長度看丟包沒有
ReDimMendByte(J-8)
ForI=0ToJ-8'提出包頭
MendByte(I)=FileByte(I+7)
Next
Fs=Fs+UBound(FileByte)-7
Put#FileNumber,,MendByte'寫文件
Winsock0.SendData"ok"'發送繼續發送的請求
Me.Caption="文件下載完成:["&Left(Fs/LenFile*100,4)&"%]"
Else
IfLeft(A,10)="#SENDSTA#"Then
A=""
ForI=10ToUBound(FileByte)'文件發送結束標記
A=A&Chr(FileByte(I))
Next
LenFile=Val(Left(A,InStr(A,"//")-1))
ForI=0ToLen(Text2.Text)
A=Left(Right(Text2.Text,I),1)
IfA=""ThenExitFor
Next
IfDir(Left(Text2.Text,Len(Text2.Text)-I+1),vbDirectory)=""ThenMkDirLeft(Text2.Text,Len(Text2.Text)-I+1)
'"#SENDSTA#"&FileLen(Text1.Text)&"//"&Text2.Text
FileNumber=FreeFile'取得未使用的文件號
Fs=0
OpenText2.TextForBinaryAs#FileNumber'打開文件
Else
IfA<>"#SENDEND#"Then
Winsock0.SendData"no"'出現丟包,請求重發
Else
Winsock0.SendData"#END#"'發送繼續發送的請求
Close#FileNumber
Reset
IfFOK=FalseThen
FOK=True
Me.Caption="下載完成!["&Text2.Text&"]"
FMain.TIn.Text=FMain.TIn.Text&"["&Now&"]"&"下載完成!("&Fs&"<="&LenFile&")"&vbCrLf
Command2.Enabled=True
Else
FOK=False
EndIf
EndIf
EndIf
EndIf
EndIf
EndSub
⑵ FTP採用的是什麼工作模式,可以實現的文件傳輸方式有哪兩種
FTP可以採用2種工作模式,分別是Port模式、Passive模式;
FTP的傳輸有兩種方式:ASCII、二進制:
1、ASCII傳輸方式:
假定用戶正在拷貝的文件包含的簡單ASCII碼文本,如果在遠程機器上運行的不是UNIX,當文件傳輸時ftp通常會自動地調整文件的內容以便於把文件解釋成另外那台計算機存儲文本文件的格式
2、二進制傳輸模式:
在二進制傳輸中,保存文件的位序,以便原始和拷貝的是逐位一一對應的。即使目的地機器上包含位序列的文件是沒意義的。例如,macintosh以二進制方式傳送可執行文件到Windows系統,在對方系統上,此文件不能執行。

(2)ftp傳輸數據例子擴展閱讀:
FTP文件傳輸協議的特點介紹:
FTP工作在TCP/IP模型的應用層,基於的傳輸協議是TCP,FTP客戶端和伺服器之間的連接是可靠的,面向連接的,為數據的傳輸提供了可靠的保證。
FTP的主要特徵:
1、控制連接是建立在客戶協議解釋器和伺服器協議解釋器之間用於交換命令與應答的通信鏈路
2、數據連接是傳輸數據的全雙工連接。傳輸數據可以發生在伺服器數據傳輸過程DTP和客戶DTP之間,也可以發生在兩個伺服器的DTP之間。
⑶ 簡述FTP服務的工作原理,並設計一個使用FTP的實例
什麼是FTP呢?FTP 是 TCP/IP 協議組中的協議之一,是英文File Transfer Protocol的縮寫。該協議是Internet文件傳送的基礎,它由一系列規格說明文檔組成,目標是提高文件的共享性,提供非直接使用遠程計算機,使存儲介質對用戶透明和可靠高效地傳送數據。簡單的說,FTP就是完成兩台計算機之間的拷貝,從遠程計算機拷貝文件至自己的計算機上,稱之為「下載(download)」文件。若將文件從自己計算機中拷貝至遠程計算機上,則稱之為「上載(upload)」文件。在TCP/IP協議中,FTP標准命令TCP埠號為21,Port方式數據埠為20。FTP協議的任務是從一台計算機將文件傳送到另一台計算機,它與這兩台計算機所處的位置、聯接的方式、甚至是是否使用相同的操作系統無關。假設兩台計算機通過ftp協議對話,並且能訪問Internet, 你可以用ftp命令來傳輸文件。每種操作系統使用上有某一些細微差別,但是每種協議基本的命令結構是相同的。
FTP的傳輸有兩種方式:ASCII傳輸模式和二進制數據傳輸模式。
1.ASCII傳輸方式:假定用戶正在拷貝的文件包含的簡單ASCII碼文本,如果在遠程機器上運行的不是UNIX,當文件傳輸時ftp通常會自動地調整文件的內容以便於把文件解釋成另外那台計算機存儲文本文件的格式。
但是常常有這樣的情況,用戶正在傳輸的文件包含的不是文本文件,它們可能是程序,資料庫,字處理文件或者壓縮文件(盡管字處理文件包含的大部分是文本,其中也包含有指示頁尺寸,字型檔等信息的非列印字元)。在拷貝任何非文本文件之前,用binary 命令告訴ftp逐字拷貝,不要對這些文件進行處理,這也是下面要講的二進制傳輸。
2.二進制傳輸模式:在二進制傳輸中,保存文件的位序,以便原始和拷貝的是逐位一一對應的。即使目的地機器上包含位序列的文件是沒意義的。例如,macintosh以二進制方式傳送可執行文件到Windows系統,在對方系統上,此文件不能執行。
如果你在ASCII方式下傳輸二進制文件,即使不需要也仍會轉譯。這會使傳輸稍微變慢 ,也會損壞數據,使文件變得不能用。(在大多數計算機上,ASCII方式一般假設每一字元的第一有效位無意義,因為ASCII字元組合不使用它。如果你傳輸二進制文件,所有的位都是重要的。)如果你知道這兩台機器是同樣的,則二進制方式對文本文件和數據文件都是有效的。
5. FTP的工作方式
FTP支持兩種模式,一種方式叫做Standard (也就是 PORT方式,主動方式),一種是 Passive (也就是PASV,被動方式)。 Standard模式 FTP的客戶端發送 PORT 命令到FTP伺服器。Passive模式FTP的客戶端發送 PASV命令到 FTP Server。
下面介紹一個這兩種方式的工作原理:
Port模式FTP 客戶端首先和FTP伺服器的TCP 21埠建立連接,通過這個通道發送命令,客戶端需要接收數據的時候在這個通道上發送PORT命令。 PORT命令包含了客戶端用什麼埠接收數據。在傳送數據的時候,伺服器端通過自己的TCP 20埠連接至客戶端的指定埠發送數據。 FTP server必須和客戶端建立一個新的連接用來傳送數據。
Passive模式在建立控制通道的時候和Standard模式類似,但建立連接後發送的不是Port命令,而是Pasv命令。FTP伺服器收到Pasv命令後,隨機打開一個高端埠(埠號大於1024)並且通知客戶端在這個埠上傳送數據的請求,客戶端連接FTP伺服器此埠,然後FTP伺服器將通過這個埠進行數據的傳送,這個時候FTP server不再需要建立一個新的和客戶端之間的連接。
很多防火牆在設置的時候都是不允許接受外部發起的連接的,所以許多位於防火牆後或內網的FTP伺服器不支持PASV模式,因為客戶端無法穿過防火牆打開FTP伺服器的高端埠;而許多內網的客戶端不能用PORT模式登陸FTP伺服器,因為從伺服器的TCP 20無法和內部網路的客戶端建立一個新的連接,造成無法工作。
簡單上傳下載實例(/*....*/為注釋):
先假設有一FTP伺服器,FTP伺服器:qint.ithot.net,用戶名:username 密碼:user1234。在本地電腦D:盤創建一個文件夾"qint"。將要上傳的文件復制到d:\qint里。通過FTP命令將文件從本地上傳,從伺服器下載的步驟如下:
1.「開始」-「運行」-輸入「FTP」
2.open qint.ithot.net
/*這一步可以與第一步合並,在「運行」里直接輸入"ftp qint.ithot.net"。如果你的FTP伺服器不是用的21默認埠,假如埠是2121,那麼此步的命令應在後面空格加2121,即「open qint.ithot.net 2121」*/
3.username
/*提示你輸入用戶名*/
4.user1234
/*提示你輸入密碼,密碼不回顯,打完密碼後回車即可。如果你的密碼輸入錯誤,將不會提示你重新輸入,這時你要鍵入「user」命令,將會出現第三步,你可以重新輸入用戶名和密碼。*/
5.dir
/*你成功登陸後就可以用dir查看命令查看FTP伺服器中的文件及目錄,用ls命令只可以查看文件。*/
6.mkdir qint
/*在FTP伺服器上根目錄下建立qint目錄。*/
7.cd qint
/*進入目錄qint,用「cd 你的目錄名」可以進入當前目錄的下一級目錄,這跟DOS一樣。*/
8.bin
/*採用二進制傳輸。如果你要上傳下載,這一步很重要,不先執行這個命令,上傳下載會很慢。*/
9.lcd d:\qint
/*定位本地默認文件夾,在前面我事先在D:盤創建的。*/
10.!dir
/*查看本地文件夾中的文件及目錄*/
11.put i001.jpg
/*將當前目錄(d:\qint)中的文件i001.jpg上傳到FTP伺服器默認目錄。可以用"mput *.*"將所有文件上傳到FTP伺服器上。*/
12.get d123.jpg
/*將FTP伺服器默認目錄中的文件d123.jpg下載到當前目錄下(d:\qint)。可以用"mget *.*"將所有文件下載到d:\qint*/
13.delete *.*
/*刪除目錄qint中的所有文件。*/
14.cd ..
/*返回至上一級目錄,即根目錄。返回上一級目錄用「cd ..」要注意,中間有空格。返回根目錄用「cd \」。*/
15.mrdir qint
/*刪除目錄qint。刪除目錄,在此目錄下不能有文件及目錄,不然將無法刪除。*/
16.bye
/*退出FTP伺服器*/
上傳下載時特別要注意伺服器及本地電腦的當前目錄,文件是從哪裡到哪裡的問題。查看FTP伺服器的當前目錄命令為pwd,可以用cd命令定位伺服器的目錄。可以用lcd命令定位本地電腦的目錄。以上實例應用到了採用FTP命令行方式上傳下載的最常用命令,你還可以用命令「?」查看更多的命令。
⑷ ftp如何傳送數據包
ftp 有兩種模式,主動被動,但根本模式都是 埠連接 tcp的三次握手,成功後會開啟數據埠(隨即埠),發送數據,除非你在ftp配置了數據埠,不然數據埠是隨即的
⑸ FTP原理與配置
FTP是用來傳送文件的協議。使用FTP實現遠程文件傳輸的同時,還可以保證數據傳輸的可靠性和高效性。
在企業網路中部署一台FTP伺服器,將網路設備配置為FTP客戶端,則可以使用FTP來備份或更新VRP文件和配置文件。 也可以把網路設備配置為FTP伺服器,將設備的日誌文件保存到某台主機上方便查看。
FTP傳輸數據時支持兩種傳輸模式:ASCII模式和二進制模式。
ASCII模式用於傳輸文本。 發送端的字元在發送前被轉換成ASCII碼格式之後進行傳輸,接收端收到之後再將其轉換成字元。 二進制模式常用於發送圖片文件和程序文件。 發送端在發送這些文件時無需轉換格式,即可傳輸。
使用FTP進行文件傳輸時,會使用兩個TCP連接。 第一個連接是FTP客戶端和FTP伺服器間的控制連接。 FTP伺服器開啟21號埠 ,等待FTP客戶端發送連接請求。
第二個連接是FTP客戶端和FTP伺服器間的數據連接。 伺服器使用TCP的20號埠 與客戶端建立數據連接。 通常情況下,伺服器主動建立或中斷數據連接。
執行 ftp server enable 命令使能FTP功能。
執行 set default ftp-directory 命令設置FTP用戶。
在配置FTP伺服器時,可以使用AAA為每個用戶分別配置登錄賬號和訪問許可權。
aaa 命令用來進入AAA視圖。
local-user user-name { access-limit max-number | ftpdirectory directory | idle-timeout minutes [ seconds ] | password cipher password [ opt ]| privilege level level | state {active | block } } *命令用來創建本地用戶,並配置本地用戶的各項參數。
ftp客戶端連接ftp伺服器
ftp命令用來不遠程FTP伺服器建立控制連接,並進入FTP客戶端視圖。
binary命令用來在設備作為FTP客戶端時設置文件傳輸方式為Binary模式,又稱二進制模式。預設情況下,文件傳輸方式為ASCII模式。get命令用來從遠程FTP伺服器下載文件並保存在本地。
⑹ FTP數據傳輸問題
下載地址: http://download.enet.com.cn/html/020162000120701.html 希望能幫到你 Serv-U 是目前眾多的FTP 伺服器軟體之一。通過使用Serv-U,用戶能夠將任何一台PC 設置成一個FTP 伺服器,這樣,用戶或其他使用者就能夠使用FTP 協議,通過在同一網路上的任何一台PC與FTP 伺服器連接,進行文件或目錄的復制,移動,創建,和刪除等。這里提到的FTP 協議是專門被用來規定計算機之間進行文件傳輸的標准和規則,正是因為有了象FTP 這樣的專門協議,才使得人們能夠通過不同類型的計算機,使用不同類型的操作系統,對不同類型的文件進行相互傳遞。 雖然目前FTP 伺服器端的軟體種類繁多,相互之間各有優勢,但是Serv-U 憑借其獨特的功能得以展露頭腳。具體來說,Serv-U 能夠提供以下功能: 符合windows 標準的用戶界面友好親切,易於掌握。 支持實時的多用戶連接,支持匿名用戶的訪問;通過限制同一時間最大的用戶訪問人數確保PC 的正常運轉。 安全性能出眾。在目錄和文件層次都可以設置安全防範措施。能夠為不同用戶提供不同設置,支持分組管理數量眾多的用戶。可以基於IP 對用戶授予或拒絕訪問許可權。 支持文件上傳和下載過程中的斷點續傳。 支持擁有多個IP 地址的多宿主站點。 能夠設置上傳和下載的比率,硬碟空間配額,網路使用帶寬等,從而能夠保證用戶有限的資源不被大量的FTP 訪問用戶所消耗。 可作為系統服務後台運行。 可自用設置在用戶登錄或退出時的顯示信息,支持具有UNIX 風格的外部鏈接。 上面列出的只是Serv-U 眾多功能中的一部分,具體的使用將在下文中進行詳細的介紹,這里要說明的? 時,Serv-U 在保持功能全面,強大的基礎上,提供的完全易於使用的操作界面,可以說一切盡在掌握。 使用說明 用戶在使用Serv-U 的過程中可能會碰到的所有設置問題都可以通過Serv-U 窗口中的菜單選項實現。如果用戶在安裝Serv-U 之後,啟動Serv-U 時,屏幕上沒有顯示出Serv-U 的控制窗口的話,可以用滑鼠右鍵點擊位於任務條系統托盤中的Serv-U 圖標(一個大寫的字母「U」),然後選擇彈出菜單中的第一項「Show Window」,這樣屏幕上就會顯示出Serv-U 的控制窗口。 設置FTP伺服器 位於Serv-U 控制窗口中的「SETUP」菜單中的第一項「FTP-SERVER」用來對FTP 伺服器進行總體上的設置。在選擇之後出現的窗口中的第一項「FTP PORT NUMBER」用來設置FTP伺服器使用的埠號,FTP伺服器將會通過該埠收聽所有來訪用戶的信息。一般情況下,FTP 伺服器的默認埠號為21,但是用戶可以根據自己的情況自由的進行更改,只要能夠保證所採用的埠號與其它網路應用不沖突即可。這里需要說明的一點是,使用用戶自己選擇的伺服器埠可以起到很好的安全防範作用,這時,只有用戶自己和其他知道該埠號的用戶才能夠成功的實現與伺服器的連接。因此,建議用戶在設置F TP 伺服器的時候使用自己選定的埠,而不要只是簡單的使用默認值。 隨後用戶需要設置伺服器所能提供的最大速度。一般情況下,用戶可以將這項空出,那麼伺服器將會利用所有可能的帶寬為客戶提供服務。能夠為用戶提供最大的訪問速度當然很好,但是過多的F TP 用戶可能會蠶食掉一切可能的帶寬,從而使其它的網路應用幾乎不可能實現。因此,合理的控制FTP 伺服器所能夠佔用的最大帶寬還是很重要的。 下一項是設置伺服器允許的最大用戶訪問量。在此,用戶可以限制同一時間內訪問FTP 伺服器的最大人數。如果把該項設為0,那麼FTP 伺服器將會拒絕任何用戶訪問要求;如果將該項空出,那麼Serv-U 將不會對訪問人數進行控制,直到耗盡所有的系統資源。如果用戶希望自己的FTP 伺服器能夠保持正常運轉的話,那麼最好對來訪的用戶數量進行合理的限制。一般情況下,即使老式的486 機器,在使用Serv-U之後,也能夠在同一時間內為20多名用戶提供訪問支持。 在此之後的一系列復選項中的第一項為「啟動安全功能」。如果用戶沒有選擇該項,那麼任何人通過網路都可以直接進入FTP 伺服器,對伺服器中的任何文件進行隨
⑺ ftp的兩種傳輸模式簡述
當FTP工作在主動模式下時,客戶端首先發起連接請求,與伺服器的21號埠建立控制連接,連接成功後,客戶端方藉此發送命令。若客戶端需要傳輸數據,客戶端會通過已建立的連接通道向伺服器發送信息,告知伺服器客戶端中接收數據的埠,之後伺服器則通過20號埠連接到客戶端指定的埠並傳送數據,在主動模式下,控制連接的發起方是FTP客戶機,而數據連接的發起方為FTP伺服器。
當FTP工作在被動模式下時,客戶端首先發起連接請求,與伺服器的21號埠建立控制連接。之後仍由客戶端發送信息,請求與伺服器建立數據連接,伺服器接收到此請求後,會隨機打開一個高端埠(埠號一般大於1024),並將該埠號告知客戶端,此時客戶端與伺服器的該埠再建立數據連接,通過該通道進行數據傳遞。在被動模式下,控制連接和數據連接的發起方都為客戶機。關於FTP的知識,可以到黑馬程序員學習,這些知識免費學哦!
⑻ 簡述FTP的工作原理
FTP的工作原理:FTP 採用 Internet 標准文件傳輸協議 FTP 的用戶界面, 向用戶提供了一組用來管理計算機之間文件傳輸的應用程序。
開發任何基於 FTP 的客戶端軟體都必須遵循 FTP 的工作原理,FTP 的獨特的優勢同時也是與其它客戶伺服器程序最大的不同點就在於它在兩台通信的主機之間使用了兩條 TCP 連接,一條是數據連接,用於數據傳送;
另一條是控制連接,用於傳送控制信息(命令和響應),這種將命令和數據分開傳送的思想大大提高了 FTP 的效率,而其它客戶伺服器應用程序只有一條 TCP 連接。

(8)ftp傳輸數據例子擴展閱讀:
FTP 的目標是提高文件的共享性,提供非直接使用遠程計算機,使存儲介質對用戶透明和可靠高效地傳送數據。它能操作任何類型的文件而不需要進一步處理,就像MIME或Unicode一樣。
但是,FTP有著極高的延時,這意味著,從開始請求到第一次接收需求數據之間的時間,會非常長;並且不時的必須執行一些冗長的登錄進程。
FTP 在網際網路網路上歷史是最悠久的網路工具,從 1971 年由 A KBHUSHAN 提出第一個 FTP 的RFC(RFC114),FTP 憑借其獨特的優勢一直都是網際網路中最重要、最廣泛的服務之一。
⑼ 如何使用ftp工具上傳網站內容
如何使用ftp工具上傳網站內容?
FTP是傳輸控制協議,和http類似,它也是一個面向連接的一個協議,它有點區別於http的地方就是,它用兩個埠進行工作一個是20,一個是21,這兩個埠一個用於進行傳輸數據文件一個用於控制信息的傳輸。那麼如何使用ftp工具上傳網站內容呢?它只提供文件的'瀏覽方式,並不是以網頁的形式打開,以網頁的形式打開是以http協議進行瀏覽的。
FTP主要用途是什麼?
FTP主要用在網站建設中,用來上傳網站文件到伺服器。在需要備份網站文件時,也可以用FTP下載網站文件到本地電腦。
FTP軟體有:flashFXP, leapFTP,差別不大,因為網站做好之後用的並不多。所以一般能用就行了,沒有去測試flashFXP, leapFTP的區別。
如何使用FTP工具,以上兩個軟體都是大同小異的。
首先需要伺服器的ip地址,FTP帳號和密碼連接。
連接成功後,有四個窗口分別代表四種狀態。左上為本地文件;左下為傳送狀態;右上為伺服器文件;右下為連接信息列表。傳送文件的話,在左上選中你的文件,反鍵傳送 就可以了。操作很簡單,軟體也比較小。上傳就比較簡單。
;