當前位置:首頁 » 文件傳輸 » ftp作業示例代碼
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

ftp作業示例代碼

發布時間: 2022-04-14 22:16:55

❶ 解釋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的設置即可。

❷ C++編寫ftp伺服器時,Ftp伺服器與客服端建立連接之後,怎麼協商數據傳輸埠(程序實現)

當用accept函數與客戶端請求建立連接之後,accept函數將自動新建一個套接字(假設為s2),這個新建的套接字和客戶端相連接並收發數據,而原來在監聽狀態的套接字(假設為s1)仍然處於監聽狀態,以便接受下一個連接請求。在accept函數返回s2之前,bind、listen、accept都是針對s1進行的。而accept函數返回s2之後的send和recv都是針對s2.

至於代碼,想深究的話,建議去看看"tcp/ip詳解"第二卷

❸ 有人有代碼linux下的FTP伺服器,使用C或者C++開發;實現文件的上傳、下載、斷點續傳。在線等,謝謝!

媽呀,直接下個ftpd的代碼改改唄?
要不 FileZilla Server 什麼的
都開源
何必苦做伸手黨?

❹ 如何通過ftp上傳作業

看你是內網還是外網了,如果是內網直接復製作業到指定文件夾就行了,如果是外網,你要先在本地電腦安裝ftp軟體,譬如FileZilla,新建一個站點,填寫ip地址,用戶名和密碼連接上去,把作業復制到指定文件夾就行了。

❺ FTP實驗報告。。求幫忙完成

其中客戶端軟體命名為myftp,伺服器軟體命名為ftpserver。具體功能需求如下。(一) 伺服器1) 啟動方式。執行ftpserver [IP地址] port啟動FTP服務。其中IP地址為可選項。若不提供伺服器IP地址,FTP服務將自動綁定到本地網路的IP。2) 用戶認證與許可權管理。為FTP客戶提供基於用戶名/密碼認證的服務模式,只有授權用戶才可以訪問FTP服務。與此同時,對文件/目錄的訪問,也實現基於授權的訪問機制,即只有授權用戶才可以對指定文件進行讀寫操作。用戶只有在具備寫許可權操作的目錄上才能上傳文件。(可直接集成Linux伺服器系統的用戶管理)3) 並行執行功能。為提高系統性能,伺服器將採用多進程/線程技術響應客戶請求。當客戶通過身份驗證後,伺服器將創建一個新的進程/線程來響應用戶請求,提供服務。4) 伺服器支持的客戶文件操作。登錄成功後,客戶可在伺服器執行以下操作:創建/刪除目錄(mkdir/rmdir)、顯示當前路徑(pwd)、切換目錄(cd)、查看當前目錄下的所有文件(ls)、上傳單個/多個文件(put/mput)、下載單個/多個文件(get/mget)。5) 服務傳輸模式。支持二進制(默認)及ASCII傳輸模式。用戶可通過執行binary/ascii命令切換傳輸模式。6) 站點計數與用戶管理功能。統計伺服器站點的當前活動用戶數及自運行以來的訪客總數。系統管理員可在伺服器軟體運行終端窗口執行以下命令:A)count current:當前活動用戶數B) count all:顯示系統訪客總數C) list:顯示當前在線的所有用戶的用戶名D)kill username:強制刪除某個用戶。E) quit:關閉ftp伺服器軟體。7) 其他功能。對用戶錯誤輸入提供容錯保護,即當用戶輸入錯誤命令時,需向客戶端返回出錯提示信息。8) 可選功能(加分)。A)在伺服器端為訪問頻率最高的文件建立緩沖區(可採用共享內存技術),以便提高伺服器端的性能。 B) 實現斷點續傳功能。(二) 客戶端1、 登錄管理。客戶端在shell中輸入myftp username:passwd@ftp-server-ip:ftp-server-port登錄ftpserver。若通過身份驗證,伺服器將向客戶回顯"you are client #."(#為第幾位用戶)並顯示ftp命令輸入提示符myftp>;否則顯示"username doesn't exist or password is error!"。2、 文件操作命令。在客戶端執行基本文件操作:創建/刪除目錄(lmkdir/lrmdir)、顯示當前路徑(lpwd)、切換目錄(lcd)、查看當前目錄下的所有文件(dir)、上傳單個/多個文件(put/mput)、下載單個/多個文件(get/mget)。3、 退出系統。用戶執行」quit」斷開連接,結束當前FTP會話。(三) 作業提交要求1、 將客戶端源碼和伺服器源碼分別放入命名為ftpclient和ftpserver文件夾中,連同試驗報告打包,命名格式為:學號1#學號2...。2、 作業提交截止時間為下學期第一周的周五。 四、設計思路和流程圖(包括主要數據結構及其說明、測試數據的設計及測試結果分析) 五、實驗體會(包括實驗中遇到的問題及解決過程、產生的錯誤及原因分析) 六、程序清單(包括源程序、makefile、readme)

❻ 我想做個簡單的網站,放到FTP伺服器上,實現學生作業的上傳和下載,請問如何實現ASP的

要架設網頁伺服器 用asp可以安裝IIS
可以做個mdb資料庫 用來管理學生 登錄
用fso實現作業上傳和管理

❼ 網路編程案例ftp客戶端怎麼連接伺服器

示例:創建一個http get請求,序列化後的請求應該通過寫入流(write stream)發送。
CFStringRef requestHeader = CFSTR("Connection");
CFStringRef requestHeaderValue = CFSTR("close");
CFStringRef requestBody = CFSTR("");

CFStringRef url = CFSTR("http://www..com/");
CFStringRef requestMethod = CFSTR("GET");

CFURLRef requestURL = CFURLCreateWithString(kCFAllocatorDefault, url, NULL);
CFHTTPMessageRef request = CFHTTPMessageCreateRequest(kCFAllocatorDefault, requestMethod, requestURL, kCFHTTPVersion1_1);
CFHTTPMessageSetBody(request, requestBody);
(request, requestHeader, requestHeaderValue);

CFDataRef serializedRequest = (request);

創建HTTP相應的步驟與創建請求的方法差不多,不同之處是用CFHTTPMessageCreateResponse函數代替CFHTTPMessageCreateRequest。
可以使用一個CFReadStream對象來序列化並發送CFHTTP請求。當使用CFReadStream對象時,打開讀取流的同時消息會被序列化並發送,這樣可以方便地獲取響應。如下:
CFHTTPMessageRef request = CFHTTPMessageCreateRequest(kCFAllocatorDefault, requestMethod, requestURL, kCFHTTPVersion1_1);
CFHTTPMessageSetBody(request, requestBody);
(request, requestHeader, requestHeaderValue);
CFReadStreamRef readStream = (kCFAllocatorDefault, request);
CFReadStreamOpen(readStream);

調用CFReadStreamCopyProperty 可以從讀取流獲取響應消息,代碼如下:
CFHTTPMessageRef response = CFReadStreamCopyProperty(readStream, );
使用函數獲得完整的狀態行,如下:
CFStringRef statusLine = (response);
或者,使用函數獲取狀態碼,如下:
UInt32 errCode = (response);

為了獲取返回的數據,可以使用CFReadStreamSetClient方法設置回調函數,將readStream加到run loop中。在回調函數將每次讀取的數據存起來(比如,有一個NSMutableData類型的變數data),讀完後處理數據,代碼如下:
if( == eventType)
{
UInt8 buff[255];
int length = CFReadStreamRead(stream, buff, 254);
[data appendBytes:buff length:length];

if(kCFStreamEventEndEncountered == eventType)
{
//讀取已完成,處理讀取的數據
}
}

如果接收數據是中文字元串,注意在創建NSString時選擇編碼,比如UTF8或GB2312編碼,如下所示:
NSString *string = [[NSString alloc] initWithData:data encoding:0x80000632];//GB2312編碼
當使用創建讀取流時,流的重定向默認是被禁止的。如果請求連接被重定向,會導致一個錯誤,它的狀態碼為300~307。如果收到一個重定向錯誤,需要關閉這個流,然後重新創建一個流,啟用重定向並打開流。如下:
CFReadStreamRef readStream = (kCFAllocatorDefault, request);
if(CFReadStreamSetProperty(readStream, , kCFBooleanTrue) == false)
{
//出錯處理
}
CFReadStreamOpen(myReadStream);

2.CFFTP
CFFTP也使用CFReadStream來傳送FTP數據。使用CFReadStreamCreateWithFTPURL方法來創建FTP請求,這樣會同時創建一個CFReadStreamRef對象來讀取FTP伺服器發送的數據,代碼如下:
CFStringRef url = CFSTR("ftp://ftp.example.com/file.txt");
CFURLRef requestURL = CFURLCreateWithString(kCFAllocatorDefault, url, NULL);
CFReadStreamRef readStream = CFReadStreamCreateWithFTPURL(kCFAllocatorDefault, requestURL);
下一步,使用CFReadStreamSetClient方法設置回調函數來讀取數據,然後把readStream加到程序的run loop中。
如果FTP需要使用用戶名和密碼認證,通過CFReadStreamSetProperty方法設置kCFStreamPropertyFTPUserName和kCFStreamPropertyFTPPassword屬性。
要將文件下載到本地,可以使用CFWriteStreamCreateWithFile方法創建一個指向本地文件的寫入流,將接收到的數據寫入。
上傳文件和下載文件差不多,只不過把讀取流和寫入流反過來用,使用CFWriteStreamCreateWithFTPURL方法創建寫入流,使用CFReadStreamCreateWithFile創建讀取流。
創建遠程目錄的方法與上傳文件類似,只不過將CFURL對象設置一個路徑而不是文件。
獲取目錄列表的方法與下載文件類似,數據讀取到緩存後使用,方法對讀取進行解析。

3.NSURLConnection
CFNetwork是比較底層的介面,雖然用起來比較靈活,但並不好用。多數程序僅僅需要創建簡單的請求來獲取互聯網上的一個文件,那麼使用NSURLConnection要更加方便,因為不用跟套接字、流還有回調函數打交道,取而代之的是更熟悉的委託機制。
創建一個NSURL對象:
NSNRL *url = [NSURL URLWithString:@"http://www..com/"];
NSURL對象是用來創建NSURLRequest對象的,如下:
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url cachePolicy::60.0];

可選的緩存策略有以下幾種。
(1):使用相關協議默認緩存策略。
(2): 無論本地緩存是什麼,請求都要重新載入數據。
(3):不僅要忽略本地緩存,在協議允許的情況下也要忽略遠程代理或中間件的緩存。
(4):優先使用緩存數據,緩存不存在時再去載入請求。
(5):只載入緩存數據,緩存中不存在時也不請求,可理解為離線模式。
(6): 緩存中的數據沒有過期時才載入緩存中的數據,否則請求數據並刷新緩存。

創建完NSURLRequest對象後就可以創建NSURLConnection對象了,如下:
NSURLConnection *connection = [[NSRULConnection alloc] initWithRequest:request delegate:self];

這個是非同步調用,NSURLConnection會在後台發送請求,通過設置委託參數,有數據時會收到通知。由一些委託方法來處理連接是過程中的不同事件。
當服務主機有響應將要開始發送數據時,didReceiveResponse:方法會被調用。這里可以做一些初始化的工作,比如有一個NSMutableData類型的data對象來存儲數據,在這里可以把對象長度設為0,如下所示
-(void) connection:(NSURLConnection *)connection didReceiveRespose:(NSURLResonse *)response
{
[data setLength:0];
}
當接收到數據時,didReceiveData:方法會被調用。這里可以把數據加到NSMutableData對象的後面,如下:
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)incomingData
{
[data appendData:incomingData];
}

當數據載入完成時會調用connecitionDidFinshLoading:方法,處理傳入的數據。這里以字元串處理為例,示例應用中傳入的可能是圖片或其他任何類型的對象。

- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(string);
[data release];
}

連接或傳送數據失敗時,didFailWithError方法會被調用,如下:
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
NSLog(@"query failed with error:%@", [error localizedDescription]);
[data release];
}

❽ 如何用c語言實現http ftp的上傳功能

hehe ..這是因為FTP跟HTTP根本不是同一種類型伺服器。FTP專門是用來下載上傳用的,可以算做一個網路硬碟吧..而HTTP伺服器一般是WEB伺服器..性質完全不一樣,就好象你家裡的廚房和廁所一樣,功能完全不一樣嘛你總不可能在廁所想做飯,在廚房想上廁所對不對,沒有任何辦法..你只能按最直接的地址下載

如果幫助到您,請記得採納為滿意答案哈,謝謝!祝您生活愉快! vae.la

❾ 主動模式(port)的ftp客戶端c/c++代碼示例

在linux環境下執行

#gcc ftp.c -o ftp

#./ftp

#ftp->login //登錄

connect success,pelase enter username

#ftp-> //後面自己按照提示(name支持匿名登錄,即輸入anonymous)