资源简介
利用winsock编程来实现FTP协议客户端,使用的FTP服务器为Filezilla,测试是在本机实现。
代码片段和文件信息
#include
#include
#include
#include
#include
//添加库文件
#pragma comment(lib“ws2_32.lib“)
//定义缓冲区大小和发送、接收缓冲区
#define MAX_BUFF_SIZE 8196
char recv_buf[MAX_BUFF_SIZE];
char send_buf[MAX_BUFF_SIZE];
int rflagsflag;
//函数声明
int menu();
int ConnectServer();
int ChooseNextOperation(SOCKET control_sock);
int menu1();
int cmd(SOCKET control_sock);
int size(SOCKET control_sock);
int download(SOCKET control_sock);
int quit(SOCKET control_sock);
int pwd(SOCKET control_sock);
void main() //功能主函数
{
for(;;)
switch(menu())
{case 1:ConnectServer();
getch();
break;
case 2:system(“cls“);
printf(“下载器已关闭,按任意键退出 :)\n“);
exit(0);
}
}
int menu()
{
int n;
system(“title FTP文件下载器“);
system(“color 8f“);
system(“mode con cols=80 lines=37“);
system(“cls“);
printf(“\n“);
printf(“ =============================================== \n“);
printf(“ || || \n“);
printf(“ || FTP 文件下载器 || \n“);
printf(“ || || \n“);
printf(“ || 选 择 操 作 || \n“);
printf(“ || || \n“);
printf(“ || 1:登录服务器 || \n“);
printf(“ || 2:退出 || \n“);
printf(“ =============================================== \n“);
printf(“ 请输入序号进行操作:“);
scanf(“%d“&n);
return n;
}
int ConnectServer()
{
WSADATA wsaData;
SOCKET control_sock; //控制套接字
struct sockaddr_in server;
char username[10]password[10];
SOCKET data_sock; //数据套接字
//SOCKET conn_sock; //侦听套接字
struct sockaddr_in client;
//struct sockaddr_in client_addr;
//int file_handel;
//char filename[10];
WSAStartup(MAKEWORD(22)&wsaData);
//客户端连接到FTP服务器端
//struct hostent *hp;
memset(&server 0 sizeof(struct sockaddr_in));
/* 初始化socket */
control_sock = socket(AF_INET SOCK_STREAM 0);
//hp = gethostbyname(“127.0.0.1“);
//memcpy(&server.sin_addr hp->h_addr hp->h_length);
server.sin_family = AF_INET;
server.sin_port = htons(21);
server.sin_addr.s_addr = inet_addr(“127.0.0.1“);
/* 连接到服务器端 */
if(connect(control_sock(struct sockaddr *)&server sizeof(server))==SOCKET_ERROR)
{
printf(“无法连接服务器“);
}
else
printf(“控制端口连接服务器成功!\n“);
/* 客户端接收服务器端的一些欢迎信息 */
memset(recv_buf0sizeof(recv_buf));
rflag =
- 上一篇:delphi下支持64位钩子
- 下一篇:CA6140拨叉831005课程设计
评论
共有 条评论