資源簡介
基于linux下的服務器 可完成上傳下載等一系列功能

代碼片段和文件信息
#include?“com.h“
#include?“pub.h“
#include?“hash.h“
int?data_conn_sock;????//數據連接通道
int?pasv_connsock;?????//做PASV時那個套接口
char?up_com[10]?;??????//記上一條命令到底是PASV還是PORT用的
char?port_ip[50]?;??????//PORT命令處理完后記IP用的
int?port_port?;?????????//?PORT?命令處理完后記port用的
char?refilename[100];???//?文件重命名
long?rest_long;???????????//斷點續傳的長度
long?transfer_data_now;???//從開始到現在的發送字節數
long?transfer_data_last;??//從開始到上一次的發送字節數
float?limit_speed;?????????//上傳下載的限制速度
/*
?*函數功能:收到客戶端發過來的USER命令進行處理的
?*輸入參數:CONNSESSION?*nowssion:存放著客戶端發過來的各種參數路徑
?*返回值:?無
*/
void?ftp_user(CONNSESSION?*nowssion)
{
strcpy(connusernowssion->charm);
//printf(“11.name?%s\n“connuser);
write_loop(connfd?“331?please?specify?password\r\n“?strlen(“331?please?specify?password\r\n“));
}
/*
?*函數功能:收到客戶端發過來的PASS命令進行處理的
?*輸入參數:CONNSESSION?*nowssion:存放著客戶端發過來的各種參數路徑
?*返回值:?無
*/
void?ftp_pass(CONNSESSION?*nowssion)
{
int?res;
if(strcmp(connuser?“anonymous“)?!=?0)
{
res?=?checkpass(connusernowssion->charm);
if?(res?==?1)
write_loop(connfd?“230?Login?successful\r\n“?strlen(“230?Login?successful\r\n“));
else
write_loop(connfd?“the?pass?is?error!\r\n“?strlen(“the?pass?is?error!\r\n“));
setegid_euid(connuser0);
}
else
{
write_loop(connfd?“230?Login?successful\r\n“?strlen(“230?Login?successful\r\n“));
chdir(“/var/ftp“);
}
}
/*
?*函數功能:收到客戶端發過來的SYST命令進行處理的
?*輸入參數:CONNSESSION?*nowssion:存放著客戶端發過來的各種參數路徑
?*返回值:?無
*/
void?ftp_syst(CONNSESSION?*nowssion)
{
write_loop(connfd?“215?UNIX?Type:?L8\r\n“?strlen(“215?UNIX?Type:?L8\r\n“));
}
/*
?*函數功能:收到客戶端發過來的PWD命令進行處理的?把路徑封裝好發給客戶端
?*輸入參數:CONNSESSION?*nowssion:存放著客戶端發過來的各種參數路徑
?*返回值:?無
*/
void?ftp_pwd(CONNSESSION?*nowssion)
{
char?nowdir[100]?=?““;
char?tempstr[200]?=?““;
//chdir(nowssion->dir);
if(strcmp(connuser?“anonymous“)?!=?0)
{
sprintf(tempstr?“257?\“%s\“\r\n“?nowssion->dir);
}
else
{
if(strcmp(nowssion->dir?“/var/ftp“)?==?0)
strcpy(tempstr?“257?\“/\“\r\n“);
else
{
sprintf(tempstr?“257?\“%s\“\r\n“?nowssion->dir+8);
}
}
write_loop(connfd?tempstrstrlen(tempstr));
// write_loop(connfd?“257?test\r\n“?sizeof(“257?test\r\n“));
}
/*
?*函數功能:收到客戶端發過來的TYPE命令進行處理的??
?*輸入參數:CONNSESSION?*nowssion:存放著客戶端發過來的各種參數路徑
?*返回值:?無
*/
void?ftp_type(CONNSESSION?*nowssion)
{
if(strcmp(nowssion->charm?“A“)==0)
write_loop(connfd?“200?Switching?to?ASCII?mode\r\n“?strlen(“200?Switching?to?ASCII?mode\r\n“));
else
write_loop(connfd?“200?Switching?to?binary?system?mode\r\n“?strlen(“200?Switching?to?binary?system?mode\r\n“));
}
/*
?*函數功能:收到客戶端發過來的CWD命令進行處理的???進入到指定目錄
?*輸入參數:CONNSESSION?*nowssion:存放著客戶端發過來的各種參數路徑
?*返回值:?無
*/
//進目錄
void?ftp_cwd(CONNSESSION?*nowssion)
{
if(strcmp(connuser?“root“)?!=?0?)
{
if(strcmp(nowssion->charm?“root“)?==?0?||?strcmp(nowssion->charm?“/root/“)?==?0)
{
write_loop(connfd?“550?Failed?to?change?directory.\r\
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2012-06-14?17:01??wzyftp\
?????文件???????22287??2013-07-08?22:43??wzyftp\com.c
?????文件????????1513??2013-07-06?15:00??wzyftp\com.h
?????文件???????27128??2013-07-09?19:15??wzyftp\com.o
?????文件?????????187??2013-07-09?19:15??wzyftp\ftp.conf
?????文件????????6124??2013-07-07?19:52??wzyftp\hash.c
?????文件????????1048??2013-07-02?17:56??wzyftp\hash.h
?????文件???????10388??2013-07-09?19:15??wzyftp\hash.o
?????文件?????????160??2013-07-03?15:50??wzyftp\makefile
?????文件???????63104??2013-07-09?19:19??wzyftp\myftp
?????文件?????????170??2013-06-28?23:31??wzyftp\myftp.c
?????文件????????2400??2013-07-09?19:15??wzyftp\myftp.o
?????文件???????12957??2013-06-28?16:43??wzyftp\pp
?????文件???????10646??2013-07-08?22:30??wzyftp\pub.c
?????文件????????1616??2013-07-03?15:50??wzyftp\pub.h
?????文件???????15528??2013-07-09?19:15??wzyftp\pub.o
?????文件???????11722??2013-07-09?19:19??wzyftp\ser.c
?????文件???????11722??2013-07-09?19:19??wzyftp\ser.c.bak
?????文件?????????614??2013-07-03?15:50??wzyftp\ser.h
?????文件???????15872??2013-07-09?19:19??wzyftp\ser.o
- 上一篇:KPG100DC
- 下一篇:JSON-js-master
評論
共有 條評論