• 大小: 7.74MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-14
  • 语言: C/C++
  • 标签: FTP客户端  

资源简介

C++实现FTP客户端,基本功能下载,删除,上传,显示文件列表

资源截图

代码片段和文件信息

#include “FtpClient.h“
#include
#include 
#include
#include
#include
#include
#pragma warning(disable : 4996) //忽视sprintf警告
using namespace std;

FtpClient::FtpClient()
{
WORD wVersionRequested;
WSADATA wsaData; //这个结构被用来存储被WSAStartup函数调用后返回的Windows Sockets数据
int ret;

//WinSock初始化: 
wVersionRequested = MAKEWORD(2 2);//希望使用的WinSock DLL的版本 
   /*WORD MAKEWORD(
   BYTE bLow //指定新变量的低字节序;
   BYTE bHigh //指定新变量的高字节序;
   );*/
ret = WSAStartup(wVersionRequested &wsaData); //第一个参数版本号,第二个指针指向数据,函数返回值为int型
if (ret != 0)
{
cout<<“WSAStartup() failed!“< }
//确认WinSock DLL支持版本2.2: 
if (LOBYTE(wsaData.wVersion) != 2 || HIBYTE(wsaData.wVersion) != 2)
{
WSACleanup();
//终止Winsock 2 DLL (Ws2_32.dll) 
//的使用,操作成功返回值为0;否则返回值为SOCKET_ERROR,调用WSAGetLastError获取错误代码。
cout<<“Invalid Winsock version!“< }

clientSocket = socket(AF_INET SOCK_STREAM 0);
if (clientSocket<0)
{
cout << “创建socket失败“ << endl;
}
else
{
start();
}
}
/************************************************************************/
/* 菜单选项
   输入1登录 用户输入要来连接主机连接成功后输入账号密码
      2下载  从FTP服务器下载文件到本地
  3上传  本地上传文件到服务器
  4查看  查看服务器当前目录所有文件
  5删除  删除服务器文件
  6退出  断开连接
*/
/************************************************************************/
void FtpClient::start()
{
int a;
while (1)
{
cout << “***************小辛的FTP客户端***************“ << endl;
cout << “1.登录“ << endl;
cout << “2.下载“ << endl;
cout << “3.上传“ << endl;
cout << “4.查看“ << endl;
cout << “5.删除“ << endl;
cout << “6.退出“ << endl;
cout << “*********************************************“ << endl;
cin >> a;
switch (a)
{
case 1:
LogIn();
break;
case 2:
DownLoad();
break;
case 3:
UpLoad();
break;
case 4:
List();
break;
case 5:
Delete();
break;
case 6:
Exit();
break;
default:
break;
}
}
}
//析构函数注销socket
FtpClient::~FtpClient()
{
closesocket(clientSocket);
}
//登陆功能
bool FtpClient::LogIn()
{
memset(&serverChannel 0 sizeof(serverChannel));//清空serverChannel
cout << “请输入要连接的IP地址“ << endl;
char IP[20];
cin >> IP;
serverChannel.sin_family = AF_INET;//IPV4协议
serverChannel.sin_addr.S_un.S_addr = inet_addr(IP);//主机
serverChannel.sin_port = htons(SERVERPORT);//端口号
//创建连接
serverSocket = connect(clientSocket (sockaddr*)&serverChannel sizeof(serverChannel));
if (serverSocket < 0) {
cout << “连接失败!!“ << endl;
cout << WSAGetLastError() << endl;//如果连接失败打印失败原因代号可以进一步处理
return false;
}
else {
//连接成功返回服务器回馈信息
cout << “连接成功!“ << endl;
memset(BUFFER 0 sizeof(BUFFER));
recv(clientSocket BUFFER sizeof(BUFFER) 0);
cout << BUFFER << endl;
}

CHAR name[20];//用户名
CHAR password[20];//密码
CHAR temp[50];//临时变量存要发送的命令
string StrBuffer;//临时变量存服务器返回信息

cout << “请输入用户名:“;
cin >> na

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

    ..A..H.     30720  2017-09-29 01:33  FtpClient\.vs\FtpClient\v14\.suo

     文件     141824  2017-09-29 00:50  FtpClient\Debug\FtpClient.exe

     文件    1167404  2017-09-29 00:50  FtpClient\Debug\FtpClient.ilk

     文件    1871872  2017-09-29 00:50  FtpClient\Debug\FtpClient.pdb

     文件          2  2017-09-28 23:02  FtpClient\FtpClient\asd

     文件        213  2017-09-28 22:33  FtpClient\FtpClient\C

     文件        248  2017-09-29 00:50  FtpClient\FtpClient\Debug\FtpClient.log

     文件     432330  2017-09-29 00:50  FtpClient\FtpClient\Debug\FtpClient.obj

     文件     328442  2017-09-28 21:27  FtpClient\FtpClient\Debug\ftpclient.obj.enc

     文件       1250  2017-09-29 00:50  FtpClient\FtpClient\Debug\FtpClient.tlog\CL.command.1.tlog

     文件      67352  2017-09-29 00:50  FtpClient\FtpClient\Debug\FtpClient.tlog\CL.read.1.tlog

     文件       1302  2017-09-29 00:50  FtpClient\FtpClient\Debug\FtpClient.tlog\CL.write.1.tlog

     文件        189  2017-09-29 00:50  FtpClient\FtpClient\Debug\FtpClient.tlog\FtpClient.lastbuildstate

     文件       1214  2017-09-29 00:50  FtpClient\FtpClient\Debug\FtpClient.tlog\link.command.1.tlog

     文件       3190  2017-09-29 00:50  FtpClient\FtpClient\Debug\FtpClient.tlog\link.read.1.tlog

     文件        478  2017-09-29 00:50  FtpClient\FtpClient\Debug\FtpClient.tlog\link.write.1.tlog

     文件      48777  2017-09-29 00:50  FtpClient\FtpClient\Debug\FTPdemp.obj

     文件    1043456  2017-09-29 00:50  FtpClient\FtpClient\Debug\vc140.idb

     文件     536576  2017-09-29 00:50  FtpClient\FtpClient\Debug\vc140.pdb

     文件      12266  2017-09-29 01:33  FtpClient\FtpClient\FtpClient.cpp

     文件        619  2017-09-29 00:50  FtpClient\FtpClient\FtpClient.h

     文件       7497  2017-09-27 14:03  FtpClient\FtpClient\FtpClient.vcxproj

     文件       1180  2017-09-27 14:03  FtpClient\FtpClient\FtpClient.vcxproj.filters

     文件        129  2017-09-27 14:33  FtpClient\FtpClient\FTPdemp.cpp

     文件       1309  2017-09-27 11:27  FtpClient\FtpClient.sln

     文件   29581312  2017-09-29 01:33  FtpClient\FtpClient.VC.db

     目录          0  2017-09-27 11:27  FtpClient\.vs\FtpClient\v14

     目录          0  2017-09-29 00:50  FtpClient\FtpClient\Debug\FtpClient.tlog

     目录          0  2017-09-27 11:27  FtpClient\.vs\FtpClient

     目录          0  2017-09-29 00:50  FtpClient\FtpClient\Debug

............此处省略7个文件信息

评论

共有 条评论