① 如何用JAVA實現FTP訪問
在主函數中,完成伺服器埠的偵聽和服務線程的創建。我們利用一個靜態字元串變數initDir 來保存伺服器線程運行時所在的工作目錄。伺服器的初始工作目錄是由程序運行時用戶輸入的,預設為C盤的根目錄。
具體的代碼如下:
public class ftpServer extends Thread{
private Socket socketClient;
private int counter;
private static String initDir;
public static void main(String[] args){
if(args.length != 0) {
initDir = args[0];
}else{ initDir = "c:";}
int i = 1;
try{
System.out.println("ftp server started!");
//監聽21號埠
ServerSocket s = new ServerSocket(21);
for(;;){
//接受客戶端請求
Socket incoming = s.accept();
//創建服務線程
new ftpServer(incoming,i).start();
i++;
}
}catch(Exception e){}
}
② 想用C++實現FTP功能:選定自己電腦上的txt文件,發送到用網線連接的另一台電腦上。很急,求大神支招
可以參考下面代碼
CInternetSessionsession("MyFtpsession");
CFtpConnection*pconn;
pconn=NULL;
inttrycount=0;
CString搭搭UpFile;
UpFile="c:\a.rar";
CStringFtpIP,FtpUserName,FtpPassword,FtpDir;
FtpIP="192.168.1.100";
FtpUserName="userup";
FtpPassword="uppass";
FtpDir="/";
unsignedshortport;
port=21;
reconn:
try
{
pconn=session.GetFtpConnection(FtpIP,
FtpUserName,FtpPassword,port,FALSE);//INTERNET_INVALID_PORT_NUMBER,FALSE);
}
catch(CInternetException*pException)
{
trycount++;
if(trycount==2)
{
pException->ReportError();
returnFALSE;
}
else
{
//srand((unsigned)time(0));//設種子
//Delay((long)rand()*10000);
goto知轎拿reconn;
}
}
if(!pconn->SetCurrentDirectory(FtpDir))
{
TRACE("SetDirError");
returnFALSE;
}
if(!(pconn->PutFile(UpFile,FTP_TRANSFER_TYPE_BINARY,1)))
{
return帆瞎FALSE;
TRACE("PutError");
}
session.Close();
deletepconn;
deletesession;
pconn=NULL;
③ VB與FTP編程
建議樓主用winsock連接FTP伺服器,發送FTP命令來實現交互,另外說明下,目錄的獲取與文件的傳輸是另開埠進行的,以下是命令表
ftp協議命令字(轉)
命令 描述
ABOR 中斷數據連接程序
ACCT <account> 系統特權帳號
ALLO <bytes> 為伺服器上的文件存儲器分配位元組
APPE <filename> 添加文件到伺服器同名文件
CDUP <dir path> 改變伺服器上的父目錄
CWD <dir path> 改變伺服器上的工作目錄
DELE <filename> 刪除伺服器上的指定文件
HELP <command> 返回指定命令信息
LIST <name> 如果是文件名列出文件信息,如果是目錄則列出文件列表
MODE <mode> 傳輸模式(S=流模式,B=塊模式,C=壓縮模式)
MKD <directory> 在伺服器上建立指定目錄
NLST <directory> 列出指定目錄內容
NOOP 無動作,除了來自伺服器上的承認
PASS <password> 系統登錄密碼
PASV 請求伺服器等待數據連接
PORT <address> IP 地址和兩位元組的埠 ID
PWD 顯示當前工作目錄
QUIT 從 FTP 伺服器上退出登錄
REIN 重新初始化登錄狀態連接
REST <offset> 由特定偏移量重啟文件傳遞
RETR <filename> 從伺服器上找回(復制)文件
RMD <directory> 在伺服器上刪除指定目錄
RNFR <old path> 對舊路徑重命名
RNTO <new path> 對新路徑重命名
SITE <params> 由伺服器提供的站點特殊參數
SMNT <pathname> 掛載指定文件結構
STAT <directory> 在當前程序或目錄上返回信息
STOR <filename> 儲存(復制)文件到伺服器上
STOU <filename> 儲存文件到伺服器名稱上
STRU <type> 數據結構(F=文件,R=記錄,P=頁面)
SYST 返回伺服器使用的操作系統
TYPE <data type> 數據類型(A=ASCII,E=EBCDIC,I=binary)
USER <username>> 系統登錄的用戶名
標准 FTP 信息如下:
響應代碼 解釋說明
110 新文件指示器上的重啟標記
120 伺服器准備就緒的時間(分鍾數)
125 打開數據連接,開始傳輸
150 打開連接
200 成功
202 命令沒有執行
211 系統狀態回復
212 目錄狀態回復
213 文件狀態回復
214 幫助信息回復
215 系統類型回復
220 服務就緒
221 退出網路
225 打開數據連接
226 結束數據連接
227 進入被動模式(IP 地址、ID 埠)
230 登錄網際網路
250 文件行為完成
257 路徑名建立
331 要求密碼
332 要求帳號
350 文件行為暫停
421 服務關閉
425 無法打開數據連接
426 結束連接
450 文件不可用
451 遇到本地錯誤
452 磁碟空間不足
500 無效命令
501 錯誤參數
502 命令沒有執行
503 錯誤指令序列
504 無效命令參數
530 未登錄網路
532 存儲文件需要帳號
550 文件不可用
551 不知道的頁類型
552 超過存儲分配
553 文件名不允許
④ 買了雲伺服器之後,怎樣才能通過ftp上傳代碼呢
這個非常簡激沒單,只需要搭建一下ftp伺服器,配置一下相關文件,之後就能正常通過ftp命令上傳代碼了,和困下面我簡單介喚鉛念紹一下實現過程,以某雲的伺服器為例(Centos7):
1.首先,安裝ftp伺服器,這個直接在終端運行命令「yuminstall-yvsftpd」就行,如下,大概也就171K左右,很快就能安裝成功:
2.安裝完成後,為了方便演示,這里我們新建一個ftp測試用戶ftp_test,並修改其密碼,如下:
3.接著就是配置ftp伺服器,這里主要修改一下vsftpd.conf文件就行,位於/etc/vsftpd/目錄下,禁止匿名用戶訪問,同時只能訪問自己主目錄,設置參數anonymous_enable和參數chroot_local_user為NO即可(這里可以自定義配置),如下:
4.配置完成後,就是啟動ftp服務,這個直接運行命令「systemctlstartvsftpd」就行,如下,默認啟動的埠是21:
這里我們可以本地測試一下ftp連接,輸入前面創建的ftp_test用戶和密碼,如下,已經成功登陸,並可以查閱文件:
5.最後就是將本地的代碼文件上傳到雲ftp伺服器上,這個ftp連接後,再put上傳就行,如下,非常簡單:
至此,我們就完成了將本地代碼文件上傳到雲ftp伺服器上。總的來說,整個過程非常簡單,最主要的還是搭建ftp伺服器,只要你熟悉一下上面的搭建過程,很快就能成功的,網上也有相關資料和教程,介紹的非常詳細,感興趣的話,可以搜一下,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言進行補充。
⑤ java中怎麼實現ftp伺服器
我知道apache有個commons net包,其中的FTPClient類可以實現客戶端和服務之間的文件傳輸,但是我如果使用這種方式的話,就得將一台伺服器上的文件傳到我本地,再將這個文件傳到另一台伺服器上,感覺這中間多了一步操作;
⑥ 請列出FTP的常見命令
1、DOS方式下FTP的使用
可在Windows系統cmd命令提示符下,輸入
C: >FTP 域名
USER NAME: 管理員帳號
PASSWORD: 口令
FTP>PUT
LOCAL FILE: filename
REMOTE FILE: filename
即可上傳
下載時使用GET命令
2、FTP常用命令
Ftp命令的功能是在本地機和遠程機之間傳送文件。該命令的一般格式如下:
c:> ftp 主機名/IP
最常用的命令有:
ls 列出遠程機的當前目錄
cd 在遠程機上改變工作目錄
lcd 在本地機上改變工作目錄
ascii 設置文件傳輸方式為ASCII模式
binary 設置文件傳輸方式為二進制模式
close 終止當前的ftp會話
hash 每次傳輸完數據緩沖區中的數據後就顯示一個#號
get(mget) 從遠程機傳送指定文件到本地機
put(mput) 從本地機傳送指定文件到遠程機
open 連接遠程ftp站點
quit 斷開與遠程機的連接並退出ftp
? 顯示本地幫助信息
3.Linux下FTP命令詳解
FTP> ! 從 ftp 子系統退出到外殼。
FTP> ? 顯示 ftp 命令說明。? 與 help 相同。
格式:? [command]
說明:[command]指定需要幫助的命令名稱。如果沒有指定 command,ftp 將顯示全部命令的列表。
FTP> append 使用當前文件類型設置將本地文件附加到遠程計算機上的文件。
格式:append local-file [remote-file]
說明:local-file 指定要添加的本地文件。
remote-file 指定要添加 local-file 的遠程計算機上的文件。如果省略了 remote-file,本地文件名將被用作遠程文件名。
FTP> ascii 將文件傳送類型設置為默認的 ASCII。
說明:FTP 支持兩種文件傳送類型,ASCII 碼和二進制圖像。在傳送文本文件時應該使用ASCII。
FTP> bell 切換響鈴以在每個文件傳送命令完成後響鈴。默認情況下,鈴聲是關閉的。
FTP> binary(或bi) 將文件傳送類型設置為二進制。
FTP> bye(或by) 結束與遠程計算機的 FTP 會話並退出 ftp。
FTP> cd 更改遠程計算機上的工作目錄。
格式:cd remote-directory
說明:remote-directory 指定要更改的遠程計算機上的目錄。
FTP> close 結束與遠程伺服器的 FTP 會話並返回命令解釋程序。
FTP> debug 切換調試。當調試打開時,發送到遠程計算機的每個命令都列印,前面是字元串「>」。默認情況下,調試是關閉的。
FTP> delete 刪除遠程計算機上的文件。
格式:delete remote-file
說明:remote-file 指定要刪除的文件。
FTP> dir 顯示遠程目錄文件和子目錄列表。
格式:dir [remote-directory] [local-file]
說明:remote-directory 指定要查看其列表的目錄。如果沒有指定目錄,將使用遠程計算機中的當前工作目錄。Local-file 指定要存儲列表的本地文件。如果沒有指定,輸出將顯示在屏幕上。
FTP> disconnect 從遠程計算機斷開,保留 ftp 提示。
FTP> get 使用當前文件轉換類型將遠程文件復制到本地計算機。
格式:get remote-file [local-file]
說明:remote-file 指定要復制的遠程文件。
Local-file 指定要在本地計算機上使用的名稱。如果沒有指定,文件將命名為 remote-file。
FTP >glob 切換文件名組合。組合允許在內部文件或路徑名中使用通配符(*和?)。默認情況下,組合是打開的。
FTP >hash 切換已傳輸的每個數據塊的數字簽名 (#) 列印。數據塊的大小是2048 位元組。默認情況下,散列符號列印是關閉的。
FTP >help 顯示 ftp 命令說明。
格式:help [command]
說明:command 指定需要有關說明的命令的名稱。如果沒有指定 command,ftp 將顯示全部命令的列表。
FTP >lcd 更改本地計算機上的工作目錄。默認情況下,工作目錄是啟動 ftp 的目錄。
格式:lcd [directory]
說明:directory 指定要更改的本地計算機上的目錄。如果沒有指定directory,將顯示本地計算機中當前的工作目錄。
FTP >literal 將參數逐字發送到遠程 FTP 伺服器。將返回單個的 FTP 回復代碼。
格式:literal argument [ ...]
說明:argument 指定要發送到 FTP 伺服器的參數。
FTP >ls 顯示遠程目錄文件和子目錄的縮寫列表。
格式:ls [remote-directory] [local-file]
說明:remote-directory 指定要查看其列表的目錄。如果沒有指定目錄,將使用遠程計算機中的當前工作目錄。 local-file 指定要存儲列表的本地文件。如果沒有指定,輸出將顯示在屏幕上。
FTP >mdelete 刪除遠程計算機上的文件。
格式:mdelete remote-files [ ...]
說明:remote-files 指定要刪除的遠程文件。
FTP >mdir 顯示遠程目錄文件和子目錄列表。可以使用 mdir 指定多個文件。
格式:mdir remote-files [ ...] local-file
說明:remote-files 指定要查看列表的目錄。必須指定 remote-files。請鍵入 - 使用遠程計算機上的當前工作目錄。
local-file 指定要還原列表的本地文件。請鍵入- 在屏幕上顯示列表。
FTP >mget 使用當前文件傳送類型將遠程文件復制到本地計算機。
格式:mget remote-files [ ...]
說明:remote-files 指定要復制到本地計算機的遠程文件。
FTP >mkdir 創建遠程目錄。
格式:mkdir directory
說明:directory 指定新的遠程目錄的名稱。
FTP >mls 顯示遠程目錄文件和子目錄的縮寫列表。
格式:mls remote-files [ ...] local-file
說明:remote-files 指定要查看列表的文件。必須指定 remote-files;
請鍵入- 使用遠程計算機上的當前工作目錄。
local-file 指定要存儲列表的本地文件。請鍵入 - 以在屏幕上顯示列表。
FTP >mput 使用當前文件傳送類型將本地文件復制到遠程計算機上。
格式:mput local-files [ ...]
說明:local-files 指定要復制到遠程計算機的本地文件
FTP >open 與指定的 FTP 伺服器連接。
格式:open computer [port]
說明:computer 指定要連接的遠程計算機。可以通過 IP 地址或計算機名稱指定計算機(DNS 或主機文件必須可用)。如果自動登錄打開(默認),ftp 還將嘗試自動將用戶登錄到 FTP 伺服器port 指定用來聯系 FTP 伺服器的埠號。
FTP >prompt 切換提示。如果關閉提示時 mget 及 mput 傳送所有文件,Ftp在多文件傳送過程中將提示允許您有選擇地檢索或存儲文件。默認情況下,提示是
打開的。
FTP >put 使用當前文件傳送類型將本地文件復制到遠程計算機上。
格式:put local-file [remote-file]
說明:local-file 指定要復制的本地文件。
remote-file 指定要在遠程計算機上使用的名稱。如果沒有指定,文件將命名為 local-file。
FTP >pwd 顯示遠程計算機上的當前目錄。
FTP >quit 結束與遠程計算機的 FTP 會話並退出 ftp。
FTP >quote 將參數逐字發送到遠程 FTP 伺服器。將返回單個的 FTP 回復代碼。
Quote 與 literal 相同。
格式:quote argument [ ...]
說明:argument 指定要發送到 FTP 伺服器的參數。
FTP >recv 使用當前文件傳送類型將遠程文件復制到本地計算機。Recv 與 get相同。
格式:recv remote-file [local-file]
說明:remote-file 指定要復制的遠程文件。
local-file 指定要在本地計算機上使用的名稱。如果沒有指定,文件將命名為 remote-file。
FTP >remotehelp 顯示遠程命令幫助。
格式:remotehelp [command]
說明:command 指定需要幫助的命令的名稱。如果沒有指定 command,ftp將顯示全部遠程命令的列表。
FTP >rename 重命名遠程文件。
格式:rename filename newfilename
說明:filename 指定要重命名的文件。 newfilename 指定新的文件名。
FTP >rmdir 刪除遠程目錄。
格式:rmdir directory
說明:directory 指定要刪除的遠程目錄的名稱。
FTP >send 使用當前文件傳送類型將本地文件復制到遠程計算機上。Send 與put 相同。
格式:send local-file [remote-file]
說明:local-file 指定要復制的本地文件。 remote-file 指定要在遠程計算機上使用的名稱。如果沒有指定,文件將命名為 local-file。
FTP >status 顯示 FTP 連接和切換的當前狀態。
FTP >trace 切換數據包跟蹤。Trace 在運行 ftp 命令時顯示每個數據包的路由。
FTP >type 設置或顯示文件傳送類型。
格式:type [type-name]
說明:type-name 指定文件傳送類型。默認設置為 ascii。如果沒有指定type-name,將顯示當前的類型。
FTP >user 指定遠程計算機的用戶。
格式:user username [password] [account]
說明:user-name 指定登錄到遠程計算機所使用的用戶名。password 指定 user-name 的密碼。如果沒有指定,但必須指定,ftp 會提示輸入密碼。
account 指定登錄到遠程計算機所使用的帳戶。如果沒有指定account,但是需要指定,ftp 會提示您輸入帳戶。
FTP >verbose 切換 verbose 模式。如果打開,將顯示所有 ftp 響應。在文件傳送完成後,將同時顯示與傳送效率有關的統計信息。默認情況下,verbose 是打開的。