導航:首頁 > IDC知識 > cftp伺服器源碼

cftp伺服器源碼

發布時間:2020-10-19 18:11:13

1、C語言實現從FTP下載、上傳文件

1.C語言可以使用CStdioFile函數打開本地文件。使用類CInternetSession 創建並初始化一個Internet打開FTP伺服器文件。
CStdioFile繼承自CFile,一個CStdioFile 對象代表一個用運行時函數fopen 打開的C 運行時流式文件。
流式文件是被緩沖的,而且可以以文本方式(預設)或二進制方式打開。文本方式提供對硬回車—換行符對的特殊處理。當你將一個換行符(0x0A)寫入一個文本方式的CStdioFile 對象時,位元組對(0x0D,0x0A)被發送給該文件。當你讀一個文件時,位元組對(0x0D,0x0A)被翻譯為一個位元組(0x0A)。
CStdioFile 不支持Duplicate,LockRange,和UnlockRange 這幾個CFile 函數。如果在CStdioFile 中調用了這幾個函數,將會出現CNoSupported 異常。
使用類CInternetSession 創建並初始化一個或多個同時的Internet 會話。如果需要,還可描述與代理伺服器的連接。
如果Internet連接必須在應用過程中保持著,可創建一個類CWinApp的CInternetSession成員。一旦已建立起Internet 會話,就可調用OpenURL。CInternetSession會通過調用全局函數AfxParseURL來為分析映射URL。無論協議類型如何,CInternetSession 解釋URL並管理它。它可處理由URL資源「file://」標志的本地文件的請求。如果傳給它的名字是本地文件,OpenURL 將返回一個指向CStdioFile對象的指針。
如果使用OpenURL在Internet伺服器上打開一個URL,你可從此處讀取信息。如果要執行定位在伺服器上的指定的服務(例如,HTTP,FTP或Gopher)行為,必須與此伺服器建立適當的連接。

2.常式:

#include <winsock.h>
#include <stdio.h>
WORD wVersionRequested;
WSADATA wsaData;
char name[255]; //name里是本機名
CString ip; //本機IP
PHOSTENT hostinfo;
wVersionRequested = MAKEWORD( 1, 1 );
if ( WSAStartup( wVersionRequested, &wsaData ) == 0 )
{
if( gethostname ( name, sizeof(name)) == 0)
  {
if((hostinfo = gethostbyname(name)) != NULL)
{
ip = inet_ntoa (*(struct in_addr *)*hostinfo->h_addr_list);
}
}
WSACleanup( );
}  
// AfxMessageBox(name);//name里是本機名
// AfxMessageBox(ip); //ip中是本機IP
CStdioFile File;
File.Open("C://ip.txt",CFile::modeCreate|CFile::modeReadWrite);
//如果文件事先不存在的話,就需要CFile::modeCreate,否則就不需要。
File.WriteString(ip+":"+"8000");
File.Close();  //注意,這里一定要把文件關閉,否則不能成功上傳
CString host="204.45.67.11";  
  CString user="19337";  
  CString password="1234567";  
  TRACE(":%s:%s:%s:%s/n", host,   
user, password, "C://ip.txt");  
  CInternetSession session  
(AfxGetApp()->m_pszAppName);  
  CFtpConnection* pConn = NULL;  
  pConn = session.GetFtpConnection (host,user,password);  
  if (pConn) {  
if (!pConn->PutFile("C://ip.txt","ip.txt"))
{  
MessageBox("傳送文件失敗??");  
} else {  
MessageBox("傳送文件成功!");  
}  
pConn->Close();  
delete pConn;  
session.Close();  
  } else {  
MessageBox("Cannot Connect");  
  }

2、linux下c語言編程實現ftp下載,匿名登錄FTP伺服器時,輸入USER anonymous,返回331...

正確的格式是這樣的:

USER 用戶名
PASS 密碼

如果匿名登錄,那麼就應該是

USER Anonymous
PASS

如果不行,應該是FTP伺服器不支持匿名登錄。

3、怎樣用c或c++語言編寫ftp程序 客戶端和伺服器端的源代碼

這個問題太大了點,你可以去starforge等開源網站上去找這方面的工程。。。

4、Java實現ftp伺服器源代碼

/**
* 創建日期:Dec 23, 2008
* 類名:Ftp.java
* 類路徑:org
* 修改日誌:
*/
package org;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import sun.net.TelnetInputStream;
import sun.net.TelnetOutputStream;
import sun.net.ftp.FtpClient;

/**
* @author 南山一根蔥
* @Description ftp操作
*/
public class Ftp {
/**
* 獲取Ftp目錄下的列表
*/
public void getftpList() {
String server = "";// 輸入的FTP伺服器的IP地址
String user = "";// 登錄FTP伺服器的用戶名
String password = "";// 登錄FTP伺服器的用戶名的口令
String path = "";// FTP伺服器上的路徑
try {
FtpClient ftpClient = new FtpClient();// 創建FtpClient對象
ftpClient.openServer(server);// 連接FTP伺服器
ftpClient.login(user, password);// 登錄FTP伺服器
if (path.length() != 0) {
ftpClient.cd(path);
}
TelnetInputStream is = ftpClient.list();
int c;
while ((c = is.read()) != -1) {
System.out.print((char) c);
}
is.close();
ftpClient.closeServer();// 退出FTP伺服器
} catch (IOException ex) {
System.out.println(ex.getMessage());
}
}
/**
* 下載FTP上的文件
*/
public void getFtpFile() {
String server = "";// 輸入的FTP伺服器的IP地址
String user = "";// 登錄FTP伺服器的用戶名
String password = "";// 登錄FTP伺服器的用戶名的口令
String path = "";// FTP伺服器上的路徑
String filename = "";// 下載的文件名
try {
FtpClient ftpClient = new FtpClient();
ftpClient.openServer(server);
ftpClient.login(user, password);
if (path.length() != 0)
ftpClient.cd(path);
ftpClient.binary();
TelnetInputStream is = ftpClient.get(filename);
File file_out = new File(filename);
FileOutputStream os = new FileOutputStream(file_out);
byte[] bytes = new byte[1024];
int c;
while ((c = is.read(bytes)) != -1) {
os.write(bytes, 0, c);
}
is.close();
os.close();
ftpClient.closeServer();
} catch (IOException ex) {
System.out.println(ex.getMessage());
}
}
/**
* 上傳文件到FTP
*/
public void putFtpFile() {
String server = "";// 輸入的FTP伺服器的IP地址
String user = "";// 登錄FTP伺服器的用戶名
String password = "";// 登錄FTP伺服器的用戶名的口令
String path = "";// FTP伺服器上的路徑
String filename = "";// 上傳的文件名
try {
FtpClient ftpClient = new FtpClient();
ftpClient.openServer(server);
ftpClient.login(user, password);
if (path.length() != 0)
ftpClient.cd(path);
ftpClient.binary();
TelnetOutputStream os = ftpClient.put(filename);
File file_in = new File(filename);
FileInputStream is = new FileInputStream(file_in);
byte[] bytes = new byte[1024];
int c;
while ((c = is.read(bytes)) != -1) {
os.write(bytes, 0, c);
}
is.close();
os.close();
ftpClient.closeServer();
} catch (IOException ex) {
System.out.println(ex.getMessage());
}
}
}

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

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

6、哪兒有linux下的ftp server的c程序源碼?

ftp server ? 可以到sourceforge或者github開源軟體倉庫上去查找下載。流行的開源軟體也可以,比如專ftp filezilla server就是比較流行的。不過不屬一定是c代碼了,也許是c++的。

7、求易語言繞過cfTP安全的源碼

用    vmp保護模塊

VMP保護開始()

欲保護的程序

VMP保護結束()

這個是模塊 送上

8、能否給一個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());

}

}
}

9、關於C語言FTP伺服器上傳數據實現方法

FTP伺服器是現成的 ? 那你就是要寫客服端咯。 看FTP協議跟socket套接字。

與cftp伺服器源碼相關的知識