當前位置:首頁 » 文件傳輸 » c語言搭建ftp服務
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言搭建ftp服務

發布時間: 2023-06-11 15:58:10

『壹』 如何在linux下用C語言寫一個向ftp伺服器用active模式傳送文件的客戶端

在絕大多數的LINUX發行版本中都選用的是WashingtonUniversity FTP,它是一個著名的FTP伺服器軟體,一般簡稱為wu-ftp。它功能強大,能夠很好地運行於眾多的UNIX操作系統,例如:IBM AIX、FreeBSD、HP-UX、NeXTstep、Dynix、SunOS、Solaris等。所以Internet上的FTP伺服器,一大半以上採用了它。wu-ftp擁有許多強大的功能,很適於吞吐量較大的FTP伺服器的管理要求: 1) 可以在用戶下載文件的同時對文件做自動的壓縮或解壓縮操作; 2) 可以對不同網路上的機器做不同的存取限制; 3) 可以記錄文件上載和下載時間; 4) 可以顯示傳輸時的相關信息,方便用戶及時了解目前的傳輸動態; 5) 可以設置最大連接數,提高了效率,有效地控制了負載。...

『貳』 C語言實現從FTP下載、上傳文件

FTP 是File Transfer Protocol(文件傳輸協議)的英文簡稱,而中文簡稱為「文傳協議」。
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)行為,必須與此伺服器建立適當的連接。

『叄』 怎麼搭建FTP伺服器

1、首先,我們創建一個用於登錄FTP以進行操作的用戶帳戶。右鍵單擊我的桌面並選擇「管理選項」,轉到「管理」界面,然後打開「本地用戶和組」選項。我們可以在列表中看到用戶選項。

『肆』 Linux下用C語言寫一個FTP系統程序,包含server和client兩部分

我覺得你可能沒講清楚吧,是寫一個類似FTP功能的程序(包括server和client)?還是要實現一個FTP的server和client?前者很簡單,先網路linux socket編程,再網路linux下文件讀寫,之後無非就是調通server和client的tcp連接之後,把讀出來的東西發過去就是了。後者要實現完整的ftp協議,如果你只是本科的話,我覺得這個確實夠難的,但這也是有開源代碼的,http://sourceforge.net/projects/libftp/,反正是大作業,慢慢看吧。不過我感覺你的需求多半是前者,否則你們老師也太BT了,這年頭誰還會自己開發ftp協議啊。。。

『伍』 ftp伺服器怎麼搭建

搭建FTP伺服器要先創建一個用戶賬戶用於登錄FTP,然後添加IIS程序服務,然後才是創建發布自己的FTP站點。

一、右鍵計算機選擇管理,點開本地用戶和組選擇用戶。

注意事項

1、在內網中搭建FTP最重要的就是映射埠,要不外網是無法訪問到本機的FTP伺服器上。做映射必須要登入路由器上去。每個人的路由都是不同的,但是總體功能還是大同小異的。

2、如果出現沒有訪問許可權,找到IE瀏覽器Internet選項中的「高級」 ,將「啟用ftp文件夾視圖」添加勾號,將「使用被動FTP」的勾號去掉。重新訪問即可。

『陸』 給出一個C++或Java編寫的ftp伺服器程序

給你一個MFC寫的:
// FtpClient.h: interface for the CFtpServer class.
//

#if !defined(_FTPCLIENT_H)
#define _FTPCLIENT_H

#include <afxinet.h>

class CFtpClient
{
//構造/析構函數
public:

CFtpClient(const char *pszFtpIp, const char *pszFtpPort, const char *pszFtpUser, const char *pszFtpPassWord);
//功能:構造函數
//參數:pszFtpIp---------Ftp伺服器IP地址
// pszFtpPort-------Ftp伺服器埠
// pszFtpUser-------Ftp用戶名
// pszFtpPassWord---Ftp用戶密碼
//返回值:無

virtual ~CFtpClient();
//功能:析構函數
//參數:無
//返回值:無

//公有成員函數
public:

BOOL ConnectFtpServer();
//功能:連接FTP伺服器
//參數:無
//返回值:TRUE--連接成功,FALSE--連接失敗

void DisConnectFtpServer();
//功能:斷開與FTP伺服器的連接
//參數:無
//返回值:無

BOOL PutFileToFtpServer(const char *pszFilePath);
//功能:上傳指定的文件到FTP伺服器
//參數:要上傳的文件名
//返回值:TRUE--連接成功,FALSE--連接失敗

BOOL GetFileFromFtpServer(const char *pszFilePath);
//功能:從FTP伺服器下載指定文件
//參數:要下載的文件名
//返回值:TRUE--連接成功,FALSE--連接失敗

CString GetUpLoadFilePath();
//功能:得到上傳文件名
//參數:無
//返回值:得到的當前路徑

//私有成員變數
private:
char m_szFtpIp[20]; //Ftp伺服器IP地址
UINT m_uFtpPort; //Ftp伺服器埠
char m_szFtpUser[20]; //Ftp用戶名
char m_szFtpPassWord[20]; //Ftp用戶密碼

CInternetSession *m_pInetSession; //Internet會話對象指針
CFtpConnection *m_pFtpConnection; //FTP服務連接對象指針
};

#endif

// FtpClient.cpp: implementation of the CFtpServer class.
//

#include "FtpClient.h"

CFtpClient::CFtpClient(const char *pszFtpIp, const char *pszFtpPort, const char *pszFtpUser,const char *pszFtpPassWord)
{
strcpy(m_szFtpIp, pszFtpIp);
m_uFtpPort = atoi(pszFtpPort);
strcpy(m_szFtpUser, pszFtpUser);
strcpy(m_szFtpPassWord, pszFtpPassWord);

m_pInetSession = NULL;
m_pFtpConnection = NULL;
}

CFtpClient::~CFtpClient()
{

}

BOOL CFtpClient::ConnectFtpServer()
{
//創建Internet會話
m_pInetSession = new CInternetSession(AfxGetAppName(), 1, PRE_CONFIG_INTERNET_ACCESS);

try
{
//連接Ftp伺服器
m_pFtpConnection = m_pInetSession->GetFtpConnection(m_szFtpIp, m_szFtpUser, m_szFtpPassWord, m_uFtpPort);
}
catch(CInternetException *pEx)
{
char szError[1024];
pEx->GetErrorMessage(szError, 1024);
pEx->Delete();

CLog Log;
Log.RecordLog("連接Ftp伺服器", CString("9999"), CString(szError));

return FALSE;
}

return TRUE;
}

void CFtpClient::DisConnectFtpServer()
{
if(m_pFtpConnection != NULL)
{
m_pFtpConnection->Close();
delete m_pFtpConnection;
m_pFtpConnection = NULL;
}

if(m_pInetSession !=NULL)
{
m_pInetSession->Close();
delete m_pInetSession;
m_pInetSession = NULL;
}
}

BOOL CFtpClient::PutFileToFtpServer(const char *pszFilePath)
{
//1. 判斷伺服器是否連接
if(m_pFtpConnection == NULL)
{
return FALSE;
}

char szLocalFile[200] = {0};
char szRemoteFile[200] = {0};

//2. 本地文件名
sprintf(szLocalFile, "%s", pszFilePath);

//3. 遠程文件名
char szDrive[10] = {0};
char szDir[210] = {0};
char szFileName[70] = {0};
char szExt[10] = {0};

_splitpath(pszFilePath, szDrive, szDir, szFileName, szExt);
sprintf(szRemoteFile, "%s\\%s.%s", g_strEnterpriseID, szFileName, szExt);

//4. 文件上傳
if(!m_pFtpConnection->PutFile(szLocalFile, szRemoteFile))
{
return FALSE;
}

return TRUE;
}

BOOL CFtpClient::GetFileFromFtpServer(const char *pszFilePath)
{
//1. 判斷伺服器是否連接
if(m_pFtpConnection == NULL)
{
return FALSE;
}

char szLocalFile[200] = {0};
char szRemoteFile[200] = {0};

//2. 本地文件名
sprintf(szLocalFile,"%s",pszFilePath);

//3. 遠程文件名
char szDrive[10] = {0};
char szDir[210] = {0};
char szFileName[70] = {0};
char szExt[10] = {0};

_splitpath(pszFilePath, szDrive, szDir, szFileName, szExt);
sprintf(szRemoteFile, "%s\\%s.%s", g_strEnterpriseID, szFileName, szExt);

//4. 文件下載
if(!m_pFtpConnection->GetFile(szRemoteFile, szLocalFile))
{
return FALSE;
}

return TRUE;
}

CString CFtpClient::GetUpLoadFilePath()
{
CString strPath = "", strDir = "";

//得到當前日期
CTime time = CTime::GetCurrentTime();
CString strDate = time.Format("%Y%m%d");

//得到上傳文件路徑
char filepath[MAX_PATH];
GetMoleFileName(NULL, filepath, MAX_PATH);
strDir.Format("%s", filepath);
strPath = strDir.Left(strDir.ReverseFind('\\')) + strDate + "\\*.txt";

return strPath;
}
//保存成兩個文件,然後添加到你的工程中就可以調用了。

『柒』 怎樣搭建自己的FTP伺服器

1、首先打開控制面板——程序和功能——打開或關閉windows功能

2、找到Internet信息服務,把FTP伺服器和Web管理工具都勾上。到這里,系統就會安裝IIS服務管理器了,安裝過程可能需要等待幾分鍾。

3、回到電腦桌面,右擊「計算機」,點擊管理,進入計算機管理界面。

選中IIS服務——網站——添加FTP站點者仿。

4、站點信息,站點可以隨便寫一個方便你首喚纖區別的名字,物理路徑是你FTP在連接的文件地址,VPS主機一般上都是設置到桌面的新建文件。

5、綁定和SSL設置,綁定IP,IP是我們電腦的物理IP。

6、身份驗證和授權信息,身份驗證點擊「匿名」和「基本」,授權根據自己的要求,一般點所有用戶。

7、這時會這里出現sdcisp.com,,FTP伺服器就搭建好鏈哪了。

『捌』 用c++在linux下編寫ftp

從linux網路編程開始學起,了解一下協議的寫法,會用到socket

『玖』 C語言連接FTP空間

#include <string.h>
#include <stdio.h>
int main(void)
{
char f[20],n[20],m[20];

FILE *fp;
printf("輸入FTP空間:\n");
scanf("%s",f);
printf("輸入名字:");
scanf("%s",n);
getchar();
printf("輸入密碼:");
scanf("%s",m);
fp= fopen("test.txt","w");
fputs(f,fp);
fprintf("\n"); //每一行一句
fputs(n,fp);
fprintf("\n");
fputs(m,fp);
fclose(fp);
return 0;
}