91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

我自己的畢業(yè)設計作品,比較初級的東西,但是實現(xiàn)了上下傳文件,目錄管理相關(guān)的一些操作.僅供新手參考.實現(xiàn)的命令有USER PASS QUIT PASV TYPE PWD CWD LIST RETR STOR

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include??
#include?
#include?
#include??
#include?
#include?
#include?
#include?

#define?FTP_DEFAULT_PORT?21

#define?SUCCESS?0

#define?MAX_STR_LEN?64

#define?MAX_BUF_LEN?4096

#define?MAX_FILE_NAME?255



/*?Global?Variables?*/
struct?sockaddr_in?Ftp_Server_ctrl_addr;???/*server‘s?address?for?ctrl?connection*/

struct?sockaddr_in?Ftp_Server_data_addr;???/*server‘s?address?for?data?connection*/

int?sockfd_ctrl;???????????/*?socket?for?control?connection?*/

int?sockfd_data;???????????/*?socket?for?data?connection?*/

char?ServerIP[MAX_STR_LEN];??????/*?Server‘s?ip?*/
?
int?ServerPort;??????/*?Server‘s?port?*/
??
char?User[MAX_STR_LEN];???????/*?user‘s??account?for?logining*/

char?Password[MAX_STR_LEN];???/*?user‘s?password?for?logining*/

char?MsgBuffer[MAX_BUF_LEN];

char?DataBuffer[MAX_BUF_LEN];

static?struct?termios?stored_settings;

/*?print?error?imformation?and?exit?program?*/
int?ErrorExit(const?char*?error)
{
??printf(“Error:?%s\n“error);
??exit(-1);
}
/*?
void?echo_off(void)
{
struct?termios?new_settings;
?? tcgetattr(0&stored_settings);
????new_settings?=?stored_settings;
new_settings.c_lflag?&=?(~ECHO);
tcsetattr(0TCSANOW&new_settings);
return;
}
void?echo_on(void)
{
tcsetattr(0TCSANOW&stored_settings);
return;
}
*/






/*********************************************send?and?receive?message************************************************/

/*?????send?control?command?to?server?with?specified?socket?descriptor?
?*?????COMMAND???or???COMMAND??
?*?????example:?“USER?anonymous\r\n“??or???“PWD\r\n“
?*/????
int?SendControlCommand(const?char*?cmd_code?const?char*?cmd_para)//?test?ok??by?myself
{
char?SendBuffer[MAX_BUF_LEN];
int?Length;
int?SendRes;
memset(SendBuffer?0?MAX_BUF_LEN);
if(cmd_code)
{
strcpy(SendBuffercmd_code);
if(cmd_para)
{
??????strcat(SendBuffer“?“);
strcat(SendBuffercmd_para);
strcat(SendBuffer“\r\n“);
}
else
strcat(SendBuffer“\r\n“);

Length=strlen(SendBuffer);
SendRes?=?write(sockfd_ctrlSendBufferLength);
}
return?SendRes;
}

/*?get?reply?message?from?server?*/?????????????????//test?ok
int?GetReplyMsg(void)
{
??int?count;
??int?reply;
??memset(MsgBuffer?0?MAX_BUF_LEN);
??count?=?read(sockfd_ctrlMsgBufferMAX_BUF_LEN);
??reply?=?atoi(MsgBuffer);
??printf(“[Server?reply]????%s“?MsgBuffer);
??return?reply;
}




/***************************************?login************************************/

/*?get?user‘s?account?from?stdin?*/
void?GetUserAccount(void)???????????????????????//test?ok
{
??char?buf[MAX_BUF_LEN];
??printf(“User:(Press?Enter?for?anonymous):“);
fgets(bufsizeof(buf)stdin);
if(buf[0]==‘\n‘)
strncpy(User“anonymous“9);
else
strncpy(Userbufstrlen(buf)-1);
// printf(“User:%s\n“User);

}

/*?get?user‘s?password?from?stdin*/
void?GetUserPasswd(void)???????????

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????17499??2011-05-19?19:01??client
?????文件???????13655??2011-05-19?23:14??client.c

評論

共有 條評論