ftp 客戶端軟體的傳輸模式ASCII和二進位制

2021-06-21 16:06:21 字數 1130 閱讀 8993

ftp可用多種格式傳輸檔案,通常由系統決定,大多數系統(包括unix系統)只有兩種模式:文字模式和二進位制模式。文字傳輸器使用ascii字元,並由回車鍵和換行符分開,而二進位制不用轉換或格式化就可傳字元,二進位制模式比文字模式更快,並且可以傳輸所有ascii值,所以系統管理員一般將ftp設定成二進位制模式。

一般來說:如果你用錯誤的模式傳輸你的,你將會無法看到,看到的會是亂碼。如果你用錯誤模式上傳cgi指令碼,那麼就將無法執行你的指令碼,會看到類似server 500 error的出錯資訊。

所以你必須使用正確的模式,和執行檔案必須用binary模式,cgi指令碼和普通html檔案用ascii模式上傳

ascii和binary模式區別:用html 和文字編寫的檔案必須用ascii模式上傳,用binary模式上傳會破壞檔案,導致檔案執行出錯。binary模式用來傳送可執行檔案,壓縮檔案,和檔案。如果你用ascii模式傳,會顯示一堆亂碼,你必須重新用binary模式傳。對於第二種情況,是因為有很多ftp伺服器和客戶端軟體能自動識別檔案型別,並採取相應的傳輸方式。

ftp是應用層協議,和具體作業系統無關

ascii模式和binary模式的區別是回車換行的處理,binary模式不對資料進行任何處理,asci模式將回車換行轉換為本機的回車字元,比如unix下是\n,windows下是\r\nmac下是\r

ascii模式下會轉換檔案,不能說是不同系統對回車換行解釋不同,而是不同的系統有不同的行結束符

unix系統下行結束符是乙個位元組,即十六進製制的0a 

而ms的系統是兩個位元組,即十六進製制的0d0a 

所以如果你的檔案是二進位制檔案比如可執行檔案、壓縮包什麼的,就肯定不能用了。

如果你的檔案就是unix下的文字檔案,你用ascii模式是正確的,要是誤用了binary模式,你在windows上看這個檔案是沒有換行的,裡面是乙個個的黑方塊。一般來說,我們最好都用binary方式,這樣可以保證不出錯。

如果有文字格式轉換的問題,即unix格式的文字dos格式的文字之間的轉換,有很多任務具可以做的,不要在ftp傳輸的時候冒險,尤其是你如果對這些東西不是非常清楚的話。可以使用mime,把所有的字元,轉換成0~128之間的字元,然後傳送,在接受方再將接收到的字元mime反向轉換。通常我們傳送郵件,就是使用這樣的字元轉換方式。

FTP客戶端程式

ftp客戶端程式,vc6.0下除錯通過 client.c include client.h define sol socket 0xffff int fill host addr char host ip addr,struct sockaddr in host,int port else retu...

ftp客戶端程式

include include include include include pragma comment lib,ws2 32.lib file fp socket client,upload wsadata wsadata int wsareturn int portnum char spor...

FTP 客戶端軟體使用心得

從事it工作這麼多年。ftp軟體是用了不少。差不多都用了。發現了一款被稱為很古老的ftp工具,才知道是多麼的強大.以下是我的使用心得 leapftp 版本太老了 功能簡單。用著自然不爽。cuteftp 功能做的不錯,我用著比較麻煩。有點複雜。而且容易出錯。對其他的ftp服務端支援不好。turboft...