當前位置:首頁 » 文件管理 » ftp客戶端源碼

ftp客戶端源碼

發布時間: 2022-10-02 06:12:47

① 諸位大神誰有java 實現ftp客戶端的源碼

您好,/ **
*創建日期:2008年12月23日

*類名:Ftp.java

*類路徑:組織結構

*更改日誌:

* / 包組織結構;

進口的java.io.File;

進口java.io.FileInputStream中;

進口java.io.FileOutputStream中;

進口的java。 io.IOException;

進口sun.net.TelnetInputStream;

進口sun.net.TelnetOutputStream;

進口sun.net.ftp.FtpClient;

> / **

* @作者南山地獄

* @說明FTP操作

* /

公共類的Ftp {

/ **

* BR />獲取FTP目錄* / 公共無效getftpList(){

字元串伺服器=「IP地址 /輸入FTP伺服器/>弦樂用戶=」「;/ / FTP伺服器的登錄用戶名

字元串密碼=「」;/ /登錄FTP伺服器的用戶名

字元串路徑密碼=「」;/ / FTP路徑上的伺服器

嘗試{
> FtpClient的FTP客戶端=新FtpClient的();/ /創建FtpClient的對象

ftpClient.openServer(伺服器);/ /連接到FTP伺服器

ftpClient.login(用戶名,密碼);/ / FTP伺服器 BR />如果(path.length()= 0){

ftpClient.cd(路徑);

}

TelnetInputStream是= ftpClient.list();

詮釋三;

而{

System.out.print((char)的C)((C = is.read())= -1!);

}

掉} is.close ();

ftpClient.closeServer();/ /退出FTP伺服器

}趕上(IOException異常前){

System.out.println(ex.getMessage());

}

}

/ **

*
* /

公共無效getFtpFile(){

字元串伺服器=「」;/ / IP地址中輸入FTP伺服器

弦樂用戶=「」;/ / FTP伺服器的登錄用戶名

字元串密碼=「」;/ /登錄密碼為FTP伺服器的用戶名

字元串路徑=「路徑

字元串文件名「;/ /上=的FTP伺服器」「;/ /下載文件名稱

嘗試{

FtpClient的FTP客戶端=新FtpClient的();

ftpClient.openServer(伺服器);

ftpClient.login(用戶名,密碼);

如果(路徑。長度()= 0)

ftpClient.cd(路徑);!

ftpClient.binary();

TelnetInputStream是= ftpClient.get(文件名);

文件file_out =新的文件(文件名);

文件輸出流OS =新的文件輸出流(file_out);

位元組[]位元組=新位元組[1024];

詮釋三;

而((C = is.read(位元組))= -1){

os.write (位元組,0,C);

}!

掉} is.close();

os.close();

ftpClient.closeServer();

}趕上(IOException異常前){

System.out.println (ex.getMessage());

}

FTP}

/ **

*文件上傳到FTP

* /

公共無效putFtpFile() {

字元串伺服器=「」;/ /輸入IP地址對伺服器

字元串用戶的地址=「」;/ / FTP伺服器的登錄用戶名

字元串密碼=「」;/ / FTP伺服器登錄用戶名密碼

字元串路徑=「」就 / FTP伺服器/>字元串文件名=「」;/ /上傳的文件名

FtpClient的FTP客戶端=新的try { FtpClient的();

ftpClient.openServer(伺服器);

ftpClient.login(用戶名,密碼);

如果(!path.length()= 0)

ftpClient.cd (路徑);

ftpClient.binary();

TelnetOutputStream OS = ftpClient.put(文件名);

文件file_in =新的文件(文件名);

文件輸入流是=新的文件輸入流(file_in);

位元組[]位元組=新位元組[1024];

詮釋三;

同時(! (C = is.read(位元組))= -1){

操作系統。寫(位元組,0,C);

}

掉} is.close();

os.close();

ftpClient.closeServer();

}趕上(IOException異常前){

System.out.println(ex.getMessage());

}

}
}

② 能否給一個java開發的具有圖形界面的ftp伺服器客戶端源代碼呢

/ **
*創建日期:2008年12月23日

*類名:Ftp.java

*類路徑:組織結構

*更改日誌:

* / 包組織結構;

進口的java.io.File;

進口java.io.FileInputStream中;

進口java.io.FileOutputStream中;

進口的java。 io.IOException;

進口sun.net.TelnetInputStream;

進口sun.net.TelnetOutputStream;

進口sun.net.ftp.FtpClient;

> / **

* @作者南山地獄

* @說明FTP操作

* /

公共類的Ftp {

/ **

* BR />獲取FTP目錄* / 公共無效getftpList(){

字元串伺服器=「IP地址 /輸入FTP伺服器/>弦樂用戶=」「;/ / FTP伺服器的登錄用戶名

字元串密碼=「」;/ /登錄FTP伺服器的用戶名

字元串路徑密碼=「」;/ / FTP路徑上的伺服器

嘗試{
> FtpClient的FTP客戶端=新FtpClient的();/ /創建FtpClient的對象

ftpClient.openServer(伺服器);/ /連接到FTP伺服器

ftpClient.login(用戶名,密碼);/ / FTP伺服器 BR />如果(path.length()= 0){

ftpClient.cd(路徑);

}

TelnetInputStream是= ftpClient.list();

詮釋三;

而{

System.out.print((char)的C)((C = is.read())= -1!);

}

掉} is.close ();

ftpClient.closeServer();/ /退出FTP伺服器

}趕上(IOException異常前){

System.out.println(ex.getMessage());

}

}

/ **

*
* /

公共無效getFtpFile(){

字元串伺服器=「」;/ / IP地址中輸入FTP伺服器

弦樂用戶=「」;/ / FTP伺服器的登錄用戶名

字元串密碼=「」;/ /登錄密碼為FTP伺服器的用戶名

字元串路徑=「路徑

字元串文件名「;/ /上=的FTP伺服器」「;/ /下載文件名稱

嘗試{

FtpClient的FTP客戶端=新FtpClient的();

ftpClient.openServer(伺服器);

ftpClient.login(用戶名,密碼);

如果(路徑。長度()= 0)

ftpClient.cd(路徑);!

ftpClient.binary();

TelnetInputStream是= ftpClient.get(文件名);

文件file_out =新的文件(文件名);

文件輸出流OS =新的文件輸出流(file_out);

位元組[]位元組=新位元組[1024];

詮釋三;

而((C = is.read(位元組))= -1){

os.write (位元組,0,C);

}!

掉} is.close();

os.close();

ftpClient.closeServer();

}趕上(IOException異常前){

System.out.println (ex.getMessage());

}

FTP}

/ **

*文件上傳到FTP

* /

公共無效putFtpFile() {

字元串伺服器=「」;/ /輸入IP地址對伺服器

字元串用戶的地址=「」;/ / FTP伺服器的登錄用戶名

字元串密碼=「」;/ / FTP伺服器登錄用戶名密碼

字元串路徑=「」就 / FTP伺服器/>字元串文件名=「」;/ /上傳的文件名

FtpClient的FTP客戶端=新的try { FtpClient的();

ftpClient.openServer(伺服器);

ftpClient.login(用戶名,密碼);

如果(!path.length()= 0)

ftpClient.cd (路徑);

ftpClient.binary();

TelnetOutputStream OS = ftpClient.put(文件名);

文件file_in =新的文件(文件名);

文件輸入流是=新的文件輸入流(file_in);

位元組[]位元組=新位元組[1024];

詮釋三;

同時(! (C = is.read(位元組))= -1){

操作系統。寫(位元組,0,C);

}

掉} is.close();

os.close();

ftpClient.closeServer();

}趕上(IOException異常前){

System.out.println(ex.getMessage());

}

}
}

③ 求大神給份MFC寫的FTP伺服器和客戶端源碼學習下,萬分感謝!

ActiveX控制項用於Web的過程是將控制項嵌入主頁中,用戶通過瀏覽器訪問該主頁時,將主頁中的控制項下載,並在用戶機器上注冊,以後就可在用戶的瀏覽器上運行。
控制項下載一次後就駐留在用戶本地機器上,下次再訪問相同的主頁時,可不再下載該控制項,而是直接運行用戶本地的控制項。這里控制項容器就是瀏覽器,用戶不需要通過瀏覽器調用控制項的屬性或方法。
因此,開發面向Web的ActiveX控制項比開發桌面的控制項還要簡單些,所復雜的是如何將該控制項很好地嵌入主頁,使用戶能正常瀏覽。

④ java ftp客戶端主動模式(port)下的源代碼

維護一個ftp的伺服器列表,包含ip埠用戶名密碼
定時的遞歸掃描每個ftp伺服器的目錄和文件,保存到本地資料庫
搜索的時候,從本地資料庫查詢

至於java訪問ftp伺服器的方法,已經有很多現成的實現
比如www.apache.org的commons-net里就有
有的版本的sun jdk自身就帶

⑤ 求java實現的FTP客戶端伺服器源碼!

網上多的是,別懶

⑥ 誰有 linux ftp 客戶端源碼下載地址

http://lftp.yar.ru/get.html

⑦ 解釋vsftpd源代碼

vsftpd配置文件採用「#」作為注釋符,以「#」開頭的行和空白行在解析時將被忽略,其餘的行被視為配置命令行,每個配置命令的「=」兩邊不要留有空格。對於每個配置命令,在配置文件中還列出了相關的配置說明,利用vi編輯器可實現對配置文件的編輯修改。方法如下:
#vi /etc/vsftpd/vsftpd.conf

1.登錄和對匿名用戶的設置
write_enable=YES //是否對登錄用戶開啟寫許可權。屬全局性設置。默認NO
local_enable=YES //是否允許本地用戶登錄FTP伺服器。默認為NO
anonymous_enable=YES //設置是否允許匿名用戶登錄FTP伺服器。默認為YES
ftp_username=ftp //定義匿名用戶的賬戶名稱,默認值為ftp。
no_anon_password=YES //匿名用戶登錄時是否詢問口令。設置為YES,則不詢問。默
認NO
anon_world_readable_only=YES //匿名用戶是否允許下載可閱讀的文檔,默認為YES。
anon_upload_enable=YES //是否允許匿名用戶上傳文件。只有在write_enable設置為
YES時,該配置項才有效。而且匿名用戶對相應的目錄必須有寫許可權。默認為NO。
anon_mkdir_write_enable=YES //是否允許匿名用戶創建目錄。只有在write_enable設置為 YES時有效。且匿名用戶對上層目錄有寫入的許可權。默認為NO。
anon_other_write_enable=NO //若設置為YES,則匿名用戶會被允許擁有多於
上傳和建立目錄的許可權,還會擁有刪除和更名許可權。默認值為NO。

2.設置歡迎信息
用戶登錄FTP伺服器成功後,伺服器可向登錄用戶輸出預設置的歡迎信息。
ftpd_banner=Welcome to my FTP server.
//該配置項用於設置比較簡短的歡迎信息。若歡迎信息較多,則可使用banner_file配置項。
banner_file=/etc/vsftpd/banner
//設置用戶登錄時,將要顯示輸出的文件。該設置項將覆蓋ftpd_banner的設置。
dirmessage_enable=YES
//設置是否顯示目錄消息。若設置為YES,則當用戶進入特定目錄(比如/var/ftp/linux)時,將顯示該目錄中的由message_file配置項指定的文件(.message)中的內容。
message_file=.message //設置目錄消息文件。可將顯示信息存入該文件。該文件需要放在 相應的目錄(比如/var/ftp/linux)下

3.設置用戶登錄後所在的目錄
local_root=/var/ftp
// 設置本地用戶登錄後所在的目錄。默認配置文件中沒有設置該項,此時用戶登錄FTP伺服器後,所在的目錄為該用戶的主目錄,對於root用戶,則為/root目錄。
anon_root=/var/ftp
//設置匿名用戶登錄後所在的目錄。若未指定,則默認為/var/ftp目錄。

4.控制用戶是否允許切換到上級目錄
在默認配置下,用戶可以使用「cd..」命名切換到上級目錄。比如,若用戶登錄後所在的目錄為/var/ftp,則在「ftp>」命令行下,執行「cd..」命令後,用戶將切換到其上級目錄/var,若繼續執行該命令,則可進入Linux系統的根目錄,從而可以對整個Linux的文件系統進行操作。

若設置了write_enable=YES,則用戶還可對根目錄下的文件進行改寫操作,會給系統帶來極大的安全隱患,因此,必須防止用戶切換到Linux的根目錄,相關的配置項如下:
chroot_list_enable=YES
// 設置是否啟用chroot_list_file配置項指定的用戶列表文件。設置為YES則除了列在j/etc/vsftpd/chroot_list文件中的的帳號外,所有登錄的用戶都可以進入ftp根目錄之外的目錄。默認NO
chroot_list_file=/etc/vsftpd/chroot_list
// 用於指定用戶列表文件,該文件用於控制哪些用戶可以切換到FTP站點根目錄的上級目錄。
chroot_local_user=YES
// 用於指定用戶列表文件中的用戶,是否允許切換到上級目錄。默認NO
注意:要對本地用戶查看效果,需先設置local_root=/var/ftp

具體情況有以下幾種:
1)當chroot_list_enable=YES,chroot_local_user=YES時,在/etc/vsftpd/chroot_list文件中列出的用戶,可以切換到上級目錄;未在文件中列出的用戶,不能切換到站點根目錄的上級目錄。
2)當chroot_list_enable=YES,chroot_local_user=NO時,在/etc/vsftpd/chroot_list文件中列出的用戶,不能切換到站點根目錄的上級目錄;未在文件中列出的用戶,可以切換到上級目錄。
3)當chroot_list_enable=NO,chroot_local_user=YES時,所有用戶均不能切換到上級目錄。
4)當chroot_list_enable=NO,chroot_local_user=NO時,所有用戶均可以切換到上級目錄。
5)當用戶不允許切換到上級目錄時,登錄後FTP站點的根目錄「/」是該FTP賬戶的主目錄,即文件的系統的/var/ftp目錄。

5.設置訪問控制
(1)設置允許或不允許訪問的主機(見TBP14)
tcp_wrappers=YES用來設置vsftpd伺服器是否與tcp wrapper相結合,進行主機的訪問控制。默認設置為YES,vsftpd伺服器會檢查/etc/hosts.allow和/etc/hosts.deny中的設置,以決定請求連接的主機是否允許訪問該FTP伺服器。這兩個文件可以起到簡易的防火牆功能。
比如,若要僅允許192.168.168.1~192.168.168.254的用戶,可以訪問連接vsftpd伺服器,則可在/etc/hosts.allow文件中添加以下內容:
vsftpd:192.168.168.0/255.255.255.0 :allow
all:all:deny

(2)設置允許或不允許訪問的用戶
對用戶的訪問控制由/etc/vsftpd/user_list和/etc/vsftpd/ftpusers文件來控制實現。相關配置命令如下:
userlist_enable=YES
// 決定/etc/vsftpd/user_list文件是否啟用生效。YES則生效,NO不生效。
userlist_deny=YES
// 決定/etc/vsftpd/user_list文件中的用戶是允許訪問還是不允許訪問。若設置為YES,則/etc/vsftpd/user_list文件中的用戶將不允許訪問FTP伺服器;若設置為NO,則只有vsftpd.user_list文件中的用戶,才能訪問FTP伺服器。

6.設置訪問速度
anon_max_rate=0
//設置匿名用戶所能使用的最大傳輸速度,單位為b/s。若設置為0,則不受速度限制,此為默認值。
local_max_rate=0
// 設置本地用戶所能使用的最大傳輸速度。默認為0,不受限制。

7.定義用戶配置文件
在vsftpd伺服器中,不同用戶還可使用不同的配置,這要通過用戶配置文件來實現。
user_config_dir=/etc/vsftpd/userconf //用於設置用戶配置文件所在的目錄。
設置了該配置項後,當用戶登錄FTP伺服器時,系統就會到/etc/vsftpd/userconf目錄下讀取與當前用戶名相同的文件,並根據文件中的配置命令,對當前用戶進行更進一步的配置。比如,利用用戶配置文件,可實現對不同用戶進行訪問的速度進行控制,在各用戶配置文件中,定義local_max_rate配置,以決定該用戶允許的訪問速度。

8.與連接相關的設置
listen=YES
//設置vsftpd伺服器是否以standalone模式運行。以standalone模式運行是一種較好的方式,此時listen必須設置為YES,此為默認值,建議不要更改。很多與伺服器運行相關的配置命令,需要此運行模式才有效。若設置為NO,則vsftpd不是以獨立的服務運行,要受xinetd服務的管理控制,功能上會受限制。

max_clients=0
//設置vsftpd允許的最大連接數,默認為0,表示不受限制。若設置為150時,則同時允許有150個連接,超出的將拒絕建立連接。只有在以standalone模式運行時才有效。

max_per_ip=0
// 設置每個IP地址允許與FTP伺服器同時建立連接的數目。默認為0,不受限制。通常可對此配置進行設置,防止同一個用戶建立太多的連接。只有在以standalone模式運行時才有效。

listen_address=IP地址
//設置在指定的IP地址上偵聽用戶的FTP請求。若不設置,則對伺服器所綁定的所有IP地址進行偵聽。只有在以standalone模式運行時才有效。對於只綁定了一個IP地址的伺服器,不需要配置該項,默認情況下,配置文件中沒有該配置項。若伺服器同時綁定了多個IP地址,則應通過該配置項,指定在哪個IP地址上提供FTP服務,即指定FTP伺服器所使用的IP地址。
注意:設置此值前後,可以通過netstat -tnl對比埠的監聽情況

accept_timeout=60
//設置建立被動(PASV)數據連接的超時時間,單位為秒,默認值為60。
connect_timeout=60
// PORT方式下建立數據連接的超時時間,單位為秒。
data_connection_timeout=300
//設置建立FTP數據連接的超時時間,默認為300秒。

idle_session_timeout=600
//設置多長時間不對FTP伺服器進行任何操作,則斷開該FTP連接,單位為秒,默認為600秒。即設置發呆的逾時時間,在這個時間內,若沒有數據傳送或指令的輸入,則會強行斷開連接。
pam_service_name=vsftpd
//設置在PAM所使用的名稱,默認值為vsftpd。

setproctitle_enable=NO|YES
//設置每個與FTP伺服器的連接,是否以不同的進程表現出來,默認值為NO,此時只有一個名為vsftpd的進程。若設置為YES,則每個連接都會有一個vsftpd進程,使用「ps -ef|grep ftp」命令可查看到詳細的FTP連接信息。安全起見,建議關閉。

9.FTP工作方式與埠設置
(1)FTP工作方式簡介
FTP的工作方式有兩種,一種是PORT FTP,另一種是PASV FTP。下面介紹其工作方式。
二者的區別在於PORT FTP的數據傳輸埠是由FTP伺服器指定的,而PASV FTP則是由FTP客戶端指定的,而且每次數據連接所使用的埠號都不同。正因為如此,所以在CuteFTP等FTP客戶端軟體中,其連接類型設置項中有PORT和PASV兩種選擇。

當FTP伺服器設置為PASV工作模式時,客戶端也必須設置為PASV連接類型。若客戶端連接類型設置為PORT,則能建立FTP連接,但在執行ls或get等需要數據請求的命令時,將會出現無響應並最終報告無法建立數據連接。

(2)與埠相關的配置
listen_port=21
// 設置FTP伺服器建立連接所偵聽的埠,默認值為21。
連接非標准埠示例:ftp www.sunflower.org 7000
connect_from_port_20=YES
// 默認值為YES,指定FTP數據傳輸連接使用20埠。若設置為NO,則進行數據連接時,所使用的埠由ftp_data_port指定。

ftp_data_port=20
//設置PORT方式下FTP數據連接所使用的埠,默認值為20。
pasv_enable=YES|NO
//若設置為YES,則使用PASV工作模式;若設置為NO,使用PORT模式。默認為YES,即使用PASV模式。
pasv_max_port=0
//設置在PASV工作方式下,數據連接可以使用的埠范圍的上界。默認值為0,表示任意埠。
pasv_mim_port=0
//設置在PASV工作方式下,數據連接可以使用的埠范圍的下界。默認值為0,表示任意埠。

10.設置傳輸模式
FTP在傳輸數據時,可使用二進制(Binary)方式,也可使用ASCII模式來上傳或下載數據。
ascii_download_enable=YES //設置是否啟用ASCII模式下載數據。默認為NO。
ascii_upload_enable=YES //設置是否啟用ASCII模式上傳數據。默認為NO。

11.設置上傳文檔的所屬關系和許可權
(1)設置匿名上傳文檔的屬主
chown_uploads=YES
//用於設置是否改變匿名用戶上傳的文檔的屬主。默認為NO。若設置為YES,則匿名用戶上傳的文檔的屬主將被設置為chown_username配置項所設置的用戶名。
chown_username=whoever
//設置匿名用戶上傳的文檔的屬主名。只有chown_uploads=YES時才有效。建議不要設置為root用戶。 但系統默root

(2)新增文檔的許可權設定
local_umask=022
//設置本地用戶新增文檔的umask,默認為022,對應的許可權為755。umask為022,對應的二進制數為000 010 010,將其取反為111 101 101,轉換成十進制數,即為許可權值755,代表文檔的所有者(屬主)有讀寫執行權,所屬組有讀和執行權,其他用戶有讀和執行權。022適合於大多數情況,一般不需要更改。若設置為077,則對應的許可權為700。
anon_umask=022 //設置匿名用戶新增文檔的umask。默認077
file_open_mode=0755 //設置上傳文檔的許可權。許可權採用數字格式。 默認0666

12.日誌文件
xferlog_enable=YES //是否啟用上傳/下載日誌記錄。默認為NO
xferlog_file=var/log/vsftpd.log //設置日誌文件名及路徑。需啟用xferlog_enable選項
xferlog_std_format=YES //日誌文件是否使用標準的xferlog日誌文件格式(與wu-ftpd使用的格式相同) 。默認為NO

13.其他設置
text_userdb_names=NO
//設置在執行ls命令時,是顯示UID、GID還是顯示出具體的用戶名或組名稱。默認為NO,以UID和GID方式顯示,若希望顯示用戶名和組名稱,則設置為YES。
ls_recurse_enable=YES
//若設置為YES,則允許執行「ls –R」這個命令,默認值為NO。在配置文件中該配置項被注釋掉了,與此類似的還有一些配置,需要啟用時,將注釋符去掉並進行YES或NO的設置即可。

⑧ 求一份FTP客戶端的源碼,伺服器用的是Linux.

為什麼需要源碼呢,不知道你用的哪個linux發行版,現在不管哪個發行版都有編譯好的二進製版本直接安裝的,用源碼編譯多此一舉,linux服務端可以用vsftpd,linux客戶端可以用ftp,lftp,這些都是開源軟體,源碼很容易找,只是沒必要

⑨ linux下ftp客戶端源碼

sudo apt-get source $packagename
$packagename 換成ftp客戶端名字,如lftp,我猜lftp是最簡單的。
其他常見的有
kftpgrabber
KDE下ftp客戶端,支持編碼選擇。對中文支持較好
gftp
gnome下ftp客戶端,目前對中文支持尚不太好,受抱怨頗多。
fireftp
firefox的ftp客戶端插件,新版對中文支持較好。
FileZilla
對中文支持較好
CrossFTP
基於Java的穩定ftp客戶端和同步工具。優良的中文/Unicode支持。

⑩ 急求一個用易語言編寫的FTP客戶端軟體的源碼(如果滿意,給高)

精易模塊不是有這些FTP的操作嘛~~

熱點內容
sql判斷今天 發布:2024-10-09 04:19:35 瀏覽:942
拆分視頻需要哪些配置 發布:2024-10-09 04:06:39 瀏覽:911
安裝電腦網路需要哪些配置 發布:2024-10-09 03:57:28 瀏覽:962
風雲城伺服器ip地址 發布:2024-10-09 03:53:18 瀏覽:634
c演演算法 發布:2024-10-09 03:53:10 瀏覽:119
androidstudio大小寫忽略 發布:2024-10-09 03:53:10 瀏覽:569
蘋果8p音效和安卓的音效哪個好 發布:2024-10-09 03:45:59 瀏覽:591
c語言動態分配空間 發布:2024-10-09 03:35:14 瀏覽:983
死歌腳本 發布:2024-10-09 03:11:55 瀏覽:86
企業內網搭建電影伺服器侵權嗎 發布:2024-10-09 03:07:14 瀏覽:107