资源简介
我自己的毕业设计作品,比较初级的东西,但是实现了上下传文件,目录管理相关的一些操作.仅供新手参考.实现的命令有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
- 上一篇:树莓派小车循迹程序
- 下一篇:运动会分数统计程序设计报告
相关资源
- LINUX下命令行界面的C语言细胞游戏
- 尚观培训linux许巍老师关于c语言的课
- 《Linux程序设计》第四版pdf高清电子版
- linux 0.11内核代码
- linux ac108多麦方案驱动(ac108.c)
- 共享内存 读写
- 简易web服务器的设计与实现
- 《LINUX C编程从初学到精通》光盘源码
- Linux那些事儿之我是USB core
- socket客户端.c
- TCP/IP客户端和服务器端源代码,好用
- FTP客户端源码(c++)
- Linux c语言 学生成绩管理系统
- opc ua客户端
- TCP服务端和TCP客户端通讯
- ftp工具代码
- XX游戏客户端源码
- socket通讯c++源码(客户端+服务端)
- Linux开发工具手册
- c++开发http服务端+客户端
- Linux操作系统下C语言编程从零开始
- 基于Linux下C语言开发的员工管理系统
- 超级玛丽c++源码win32Linux平台
- UNIX/LINUX下C语言中文短信UCS2编码和解
- 嵌入式工程师必知必会 (完整高清中
- linux-2.6.24.rar
- 用C++写的FTP客户端
- Linux下C语言操作静态ARP表,包括增加
- CAsyncSocket异步实现服务器与客户端
- c语言 linux 贪吃蛇.doc
评论
共有 条评论