资源简介
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\li
文件 3190 2017-09-29 00:50 FtpClient\FtpClient\Debug\FtpClient.tlog\li
文件 478 2017-09-29 00:50 FtpClient\FtpClient\Debug\FtpClient.tlog\li
文件 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个文件信息
相关资源
- FTP客户端与服务器的MFC实现
- 计算机网络课程设计农大socket实现F
- C语言实现基于winsock的ftp客户端程序
- 支持多线程和断点续传的FTP客户端
- 基于MFC的ftp客户端80563
- 基于MFC的FTP客户端demo
- 基于MFC编写的FTP客户端(使用VS)
- windows下原生c++语言实现的FTP客户端
- 基于MFC的FTP客户端
- MFC实现FTP客户端
- tftp客户端和服务器
- FTP客户端源程序 上传
- C语言实现TFTP客户端代码
- FTP客户端程序,c语言编写
- ftp客户端的C语言实现
- 简单的Linux下Ftp客户端C语言编写
- 一个FTP客户端的设计与实现C实现
- FTP客户端程序设计(基于visual c++)
- VC++ 实现FTP客户端与服务器
- ftp客户端及服务器 mfc 网络高级程序设
- 简单WinInet FTP客户端编程
- mfc的ftp客户端源码
- C++ 纯SOCKET实现FTP客户端类
- FTP客户端源代码C语言
- Ftp客户端连接服务器(源码+可执行文
- FTP客户端源代码采用winsock编写
- 课程设计:FTP客户端源代码实现(源码
- FTP客户端(基于QT)
- linux下用c语言实现简单的FTP客户端
- FTP客户端 计算机网络实验
评论
共有 条评论