當前位置:首頁 » 文件管理 » FTP客戶端編程有界面

FTP客戶端編程有界面

發布時間: 2022-12-07 00:00:29

㈠ 求用java寫一個ftp伺服器客戶端程序。

import java.io.*;
import java.net.*;public class ftpServer extends Thread{ public static void main(String args[]){
String initDir;
initDir = "D:/Ftp";
ServerSocket server;
Socket socket;
String s;
String user;
String password;
user = "root";
password = "123456";
try{
System.out.println("MYFTP伺服器啟動....");
System.out.println("正在等待連接....");
//監聽21號埠
server = new ServerSocket(21);
socket = server.accept();
System.out.println("連接成功");
System.out.println("**********************************");
System.out.println("");

InputStream in =socket.getInputStream();
OutputStream out = socket.getOutputStream();

DataInputStream din = new DataInputStream(in);
DataOutputStream dout=new DataOutputStream(out);
System.out.println("請等待驗證客戶信息....");

while(true){
s = din.readUTF();
if(s.trim().equals("LOGIN "+user)){
s = "請輸入密碼:";
dout.writeUTF(s);
s = din.readUTF();
if(s.trim().equals(password)){
s = "連接成功。";
dout.writeUTF(s);
break;
}
else{s ="密碼錯誤,請重新輸入用戶名:";<br> dout.writeUTF(s);<br> <br> }
}
else{
s = "您輸入的命令不正確或此用戶不存在,請重新輸入:";
dout.writeUTF(s);
}
}
System.out.println("驗證客戶信息完畢...."); while(true){
System.out.println("");
System.out.println("");
s = din.readUTF();
if(s.trim().equals("DIR")){
String output = "";
File file = new File(initDir);
String[] dirStructure = new String[10];
dirStructure= file.list();
for(int i=0;i<dirStructure.length;i++){
output +=dirStructure[i]+"\n";
}
s=output;
dout.writeUTF(s);
}
else if(s.startsWith("GET")){
s = s.substring(3);
s = s.trim();
File file = new File(initDir);
String[] dirStructure = new String[10];
dirStructure= file.list();
String e= s;
int i=0;
s ="不存在";
while(true){
if(e.equals(dirStructure[i])){
s="存在";
dout.writeUTF(s);
RandomAccessFile outFile = new RandomAccessFile(initDir+"/"+e,"r");
byte byteBuffer[]= new byte[1024];
int amount;
while((amount = outFile.read(byteBuffer)) != -1){
dout.write(byteBuffer, 0, amount);break;
}break;

}
else if(i<dirStructure.length-1){
i++;
}
else{
dout.writeUTF(s);
break;
}
}
}
else if(s.startsWith("PUT")){
s = s.substring(3);
s = s.trim();
RandomAccessFile inFile = new RandomAccessFile(initDir+"/"+s,"rw");
byte byteBuffer[] = new byte[1024];
int amount;
while((amount =din.read(byteBuffer) )!= -1){
inFile.write(byteBuffer, 0, amount);break;
}
}
else if(s.trim().equals("BYE"))break;
else{
s = "您輸入的命令不正確或此用戶不存在,請重新輸入:";
dout.writeUTF(s);
}
}

din.close();
dout.close();
in.close();
out.close();
socket.close();
}
catch(Exception e){
System.out.println("MYFTP關閉!"+e);

}
}}

㈡ FTP工作原理是怎樣的

ftp的傳輸有兩種方式:ascii傳輸模式和二進制數據傳輸模式。 1.ascii傳輸方式:假定用戶正在拷貝的文件包含的簡單ascii碼文本,如果在遠程機器上運行的不是unix,當文件傳輸時ftp通常會自動地調整文件的內容以便於把文件解釋成另外那台計算機存儲文本文件的格式。 但是常常有這樣的情況,用戶正在傳輸的文件包含的不是文本文件,它們可能是程序,資料庫,字處理文件或者壓縮文件(盡管字處理文件包含的大部分是文本,其中也包含有指示頁尺寸,字型檔等信息的非列印字元)。在拷貝任何非文本文件之前,用binary 命令告訴ftp逐字拷貝,不要對這些文件進行處理,這也是下面要講的二進制傳輸。 推薦閱讀:FTP使用命令詳解2.二進制傳輸模式:在二進制傳輸中,保存文件的位序,以便原始和拷貝的是逐位一一對應的。即使目的地機器上包含位序列的文件是沒意義的。例如,macintosh以二進制方式傳送可執行文件到windows系統,在對方系統上,此文件不能執行。 如果你在ascii方式下傳輸二進制文件,即使不需要也仍會轉譯。這會使傳輸稍微變慢 ,也會損壞數據,使文件變得不能用。(在大多數計算機上,ascii方式一般假設每一字元的第一有效位無意義,因為ascii字元組合不使用它。如果你傳輸二進制文件,所有的位都是重要的。)如果你知道這兩台機器是同樣的,則二進制方式對文本文件和數據文件都是有效的。 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的軟體,比如flashfxp,ultraftp等等軟體,裡面輸入地址直接下載就是了。 如果你要是想建一個ftp的站點,你就要自己做軟體配置用server-u或者其他的軟體直接設置一下就可以。本文來自: 編程入門網 http://www.bianceng.cn/Servers/Ftp/200707/3229.htm

㈢ 對FTP的理解(分客戶端和伺服器端)

FTP(File Transfer Protocol)是文件傳輸協議的簡稱。
FTP的作用
正如其名所示:FTP的主要作用,就是讓用戶連接上一個遠程計算機(這些計算機上運行著FTP伺服器程序)察看遠程計算機有哪些文件,然後把文件從遠程計算機上拷到本地計算機,或把本地計算機的文件送到遠程計算機去。
FTP工作原理
拿下傳文件為例,當你啟動FTP從遠程計算機拷貝文件時,你事實上啟動了兩個程序:一個本地機上的FTP客戶程序:它向FTP伺服器提出拷貝文件的請求。另一個是啟動在遠程計算機的上的FTP伺服器程序,它響應你的請求把你指定的文件傳送到你的計算機中。FTP採用「客戶機/伺服器」方式,用戶端要在自己的本地計算機上安裝FTP客戶程序。FTP客戶程序有字元界面和圖形界面兩種。字元界面的FTP的命令復雜、繁多。圖形界面的FTP客戶程序,操作上要簡潔方便的多。
簡單地說,支持FTP協議的伺服器就是FTP伺服器,下面介紹一下什麼是FTP協議(文件傳輸協議)
一般來說,用戶聯網的首要目的就是實現信息共享,文件傳輸是信息共享非常重要的一個內容之一。Internet上早期實現傳輸文件,並不是一件容易的事,我們知道 Internet是一個非常復雜的計算機環境,有PC,有工作站,有MAC,有大型機,據統計連接在Internet上的計算機已有上千萬台,而這些計算機可能運行不同的操作系統,有運行Unix的伺服器,也有運行Dos、Windows的PC機和運行MacOS的蘋果機等等,而各種操作系統之間的文件交流問題,需要建立一個統一的文件傳輸協議,這就是所謂的FTP。基於不同的操作系統有不同的FTP應用程序,而所有這些應用程序都遵守同一種協議,這樣用戶就可以把自己的文件傳送給別人,或者從其它的用戶環境中獲得文件。
與大多數Internet服務一樣,FTP也是一個客戶機/伺服器系統。用戶通過一個支持FTP協議的客戶機程序,連接到在遠程主機上的FTP伺服器程序。用戶通過客戶機程序向伺服器程序發出命令,伺服器程序執行用戶所發出的命令,並將執行的結果返回到客戶機。比如說,用戶發出一條命令,要求伺服器向用戶傳送某一個文件的一份拷貝,伺服器會響應這條命令,將指定文件送至用戶的機器上。客戶機程序代表用戶接收到這個文件,將其存放在用戶目錄中。
在FTP的使用當中,用戶經常遇到兩個概念:"下載"(Download)和"上載"(Upload)。"下載"文件就是從遠程主機拷貝文件至自己的計算機上;"上載"文件就是將文件從自己的計算機中拷貝至遠程主機上。用Internet語言來說,用戶可通過客戶機程序向(從)遠程主機上載(下載)文件。
使用FTP時必須首先登錄,在遠程主機上獲得相應的許可權以後,方可上載或下載文件。也就是說,要想同哪一台計算機傳送文件,就必須具有哪一台計算機的適當授權。換言之,除非有用戶ID和口令,否則便無法傳送文件。這種情況違背了Internet的開放性,Internet上的FTP主機何止千萬,不可能要求每個用戶在每一台主機上都擁有帳號。匿名FTP就是為解決這個問題而產生的。
匿名FTP是這樣一種機制,用戶可通過它連接到遠程主機上,並從其下載文件,而無需成為其注冊用戶。系統管理員建立了一個特殊的用戶ID,名為anonymous, Internet上的任何人在任何地方都可使用該用戶ID。
通過FTP程序連接匿名FTP主機的方式同連接普通FTP主機的方式差不多,只是在要求提供用戶標識ID時必須輸入anonymous,該用戶ID的口令可以是任意的字元串。習慣上,用自己的E-mail地址作為口令,使系統維護程序能夠記錄下來誰在存取這些文件。
值得注意的是,匿名FTP不適用於所有Internet主機,它只適用於那些提供了這項服務的主機。
當遠程主機提供匿名FTP服務時,會指定某些目錄向公眾開放,允許匿名存取。系統中的其餘目錄則處於隱匿狀態。作為一種安全措施,大多數匿名FTP主機都允許用戶從其下載文件,而不允許用戶向其上載文件,也就是說,用戶可將匿名FTP主機上的所有文件全部拷貝到自己的機器上,但不能將自己機器上的任何一個文件拷貝至匿名FTP主機上。即使有些匿名FTP主機確實允許用戶上載文件,用戶也只能將文件上載至某一指定上載目錄中。隨後,系統管理員會去檢查這些文件,他會將這些文件移至另一個公共下載目錄中,供其他用戶下載,利用這種方式,遠程主機的用戶得到了保護,避免了有人上載有問題的文件,如帶病毒的文件。
作為一個Internet用戶,可通過FTP在任何兩台Internet主機之間拷貝文件。但是,實際上大多數人只有一個Internet帳戶,FTP主要用於下載公共文件,例如共享軟體、各公司技術支持文件等。 Internet上有成千上萬台匿名FTP主機,這些主機上存放著數不清的文件,供用戶免費拷貝。實際上,幾乎所有類型的信息,所有類型的計算機程序都可以在Internet上找到。這是Internet吸引我們的重要原因之一。
匿名FTP使用戶有機會存取到世界上最大的信息庫,這個信息庫是日積月累起來的,並且還在不斷增長,永不關閉,涉及到幾乎所有主題。而且,這一切是免費的。
匿名FTP是Internet網上發布軟體的常用方法。Internet之所以能延續到今天,是因為人們使用通過標准協議提供標准服務的程序。像這樣的程序,有許多就是通過匿名FTP發布的,任何人都可以存取它們。
Internet中的有數目巨大的匿名FTP主機以及更多的文件,那麼到底怎樣才能知道某一特定文件位於哪個匿名FTP主機上的那個目錄中呢?這正是Archie伺服器所要完成的工作。Archie將自動在FTP主機中進行搜索,構造一個包含全部文件目錄信息的資料庫,使你可以直接找到所需文件的位置信息。

㈣ 用.net設計一個ftp客戶端,設計界面添加什麼工具

我也需要.有的朋友可以共享一份哦。

㈤ 什麼是FTP客戶端下載器,主要能夠實現哪些功能界面大概是怎樣的

FTP客戶端是利用FTP協議進行下載文件的一種工具。

主要實現,與FTP伺服器驗證,上傳文件,下載文件,斷點續傳等操作?

界面和迅雷類似,當然迅雷中包括FTP客戶端的功能。
這種軟體比較多,有CutuFTP,Filezilla,

㈥ 用ser-u建立ftp伺服器的用戶訪問界面問題

1.作一套web服務方案,在資料上傳時就把文件信息存入資料庫,生成動態網頁,用戶用web訪問。
2.先用tree命令生文件列表,編輯為ftp地址,做成靜態頁面。
3.很多ftp下載工具自帶搜索功能,能夠搜索站點下的所有文件。

QQ:271756865 歡迎和我聊天 呵呵

㈦ 什麼是FTP它是怎樣實現上傳和下載的

盡管Telnet提供了訪問遠程文件的極好方法,但怎麼也比不上使用自己計算機中的文件方便。如果用戶想使用其它計算機上的文件,最理想的方法就是把它COPY到自己的計算機中,以便在本地計算機上操作。那麼用什麼方法去將遠程計算機中的文件獲取過來呢?FTP正是完成這項工作的工具。

FTP以它所使用的協議:文件傳輸協議(File Transfer Protocol)來命名的。正如其名所示:協議的任務是從一台計算機將文件傳送到另一台計算機,它與這兩台計算機所處的位置、聯系的方式、以及使用的操作系統無關。假設兩台計算機能與FTP協議對話,並且能訪問INTERNET,就可以用FTP軟體的命令來傳輸文件。對於不同的操作系統具體操作上可能會有些細微差別,但是其基本的命令結構是相同的。

FTP是個非常有用的工具,你可以在任意個可經FTP訪問的公共有效的聯機資料庫或文檔中找到你想要的任何東西。全世界現在已有1000多(96年的數據)個FTP文件伺服器對所有INTERNET用戶開使用,用戶可以通過與INTERNET相連的計算機,把自己需要的文件傳輸過來。

FTP採用「客戶機/伺服器」方式,用戶端要在自己的本地計算機上安裝FTP客戶程序。FTP客戶程序有字元界和圖形界面(如Cute FTP)兩種。首先我們將研究在字元界面上如何在已有帳號(注冊名和口令)的兩台計算機之間傳送文件,其次我們將討論「匿名FTP」,它是一特殊服務,允許用戶在沒有帳戶的情況下,訪問公共FTP資料庫。大多數公共資料庫提供了匿名FTP路徑,這意味著用戶即使沒有注冊名也可以得到很多的免費文件。

㈧ 一、 編寫一個簡易的FTP客戶端程序,要求能夠通過用戶名,密碼以及URL地址瀏覽和下載FTP伺服器上的資源。

java界面?純java程序嗎,還是jsp。純java程序的話,需要引入java.net.url包。
try{getAppletContext().showDocument(new URL("http://www.163.com"),"打開位置");}
catch(Exception ex) {System.out.println("error"); }
就超鏈接了。
FTP連接可以寫為如 ftp://用戶名:密碼@163.com

㈨ 求MFC編寫的FTP伺服器和客戶端程序

我這有一個以前自學用的例子,你看看需要不?

運行程序,打開程序主界面,如圖1.1所示。輸入FTP伺服器IP地址、伺服器埠、用戶名及密碼,單擊「快速登錄」按鈕,連接FTP伺服器。連接成功後,設置下載文件存儲目錄,然後就可以上傳及下載文件了。下載文件過程中,可以暫停及刪除下載任務。

圖1.1 FTP文件上傳下載模塊主窗口

在「功能選項」菜單下選擇「下載後關機」命令,文件下載完成後,自動關閉計算機。

熱點內容
ps存儲不了工作區怎麼回事 發布:2023-02-05 16:34:41 瀏覽:234
歡樂幣腳本 發布:2023-02-05 16:34:38 瀏覽:432
winform連接資料庫 發布:2023-02-05 16:29:54 瀏覽:582
c語言二維數組函數參數 發布:2023-02-05 16:29:02 瀏覽:259
session文件夾 發布:2023-02-05 16:25:38 瀏覽:595
王者榮耀安卓系統和蘋果系統互通在哪裡 發布:2023-02-05 16:22:21 瀏覽:798
安卓微信靜音了怎麼調出聲音 發布:2023-02-05 16:16:29 瀏覽:935
手機文件夾找回 發布:2023-02-05 16:15:31 瀏覽:170
安卓手機怎麼關閉原圖 發布:2023-02-05 16:04:37 瀏覽:57
c語言銀行利率 發布:2023-02-05 16:01:26 瀏覽:393