资源简介
自己编写的FTP程序,能够列表,上传,下载文本文件,下载二进制文件会有问题。
具体可看内部文档,也是我的实验报告
注释很多,只要了解FTP工作原理很容易就能看懂
操作环境VS2005,经验证2008也可以正常工作,但不保证低版本可行
使用SOCKET实现,文档中也有详细的说明,关于更多的细节网上可以找到
代码片段和文件信息
#pragma comment(lib“ws2_32“)
#include
#include
#include
#include
#include
#include
#include“ftpClient.h“
using namespace std;
#define MENU “Welcome To The FTP ServerPlease Input The Command And Enter!Such as: LISTCWDRETRSTORDELERMDMKD“
int main()
{
char* Direct = new char[256];
memset(DirectNULL256);
Direct[1] = ‘/‘;
int returnNum;
char ip[15];
int port;
char test;
char *userName = new char[50];
memset(userNameNULL50);
memcpy(userName“Anonymous“strlen(“Anonymous“));
char PWD[50];
char temp[512];
char Command[4];
char Parameter[256];
cout<<“Please input the ip of the FTP server::“;
cin>>ip;
cout<<“Do you want to change the portNow the port is 21 :[Y/N]“;
cin>>test;
if(test==‘Y‘||test==‘y‘)
{
cout<<“Please input the num of the port::“;
cin>>temp;
port = (temp[0] - ‘0‘)*10+(temp[1] - ‘0‘);
memset(tempNULL2);
}
else if (test==‘N‘||test==‘n‘)
port = 21;
else
cout<<“Error“< /************************************
用户登录模块
************************************/
ftpClient* client = new ftpClient(ipport);
cout<<“Do you want to change USERNAMENow is anonymous:[Y/N]“;
cin>>test;
if(test==‘Y‘||test==‘y‘)
{
cout<<“UserName::“;
cin>>userName;
}
else if (test==‘N‘||test==‘n‘)
cout<<“UserName::Anonymous“< else
cout<<“Error Check input!“< client->setCommand(“USER “userName);
cout< client->sendCommand();
returnNum = client->receiveCommand();
if(returnNum == 331)
{
cout<<“PassWord::“;
cin>>PWD;
client->setCommand(“PASS “PWD);
client->sendCommand();
returnNum = client->receiveCommand();
if(returnNum == 230)
{
while(1)
{
cout< cout<<“FTP::>“;
cin>>Command;
if(strcmp(Command“list“)==0||strcmp(Command“LIST“)==0)
{
/************************************
连接控制传输控制,命令传输(需使用
socketData连接的命令,如:LIST)
************************************/
client->setCommand(“PASV“);
client->sendCommand();
client->receiveCommand();
client->getPort();
client->setCommand(“TYPE ““A“);
client->sendCommand();
client->receiveCommand();
client->interlizeDataSocket();
client->setCommand(“LIST “Direct);
cout< client->sendCommand();
client->receiveCommand();
client->receiveList();
client->receiveCommand();
}
else if(strcmp(Command“CWD“)==0||strcmp(Command“cwd“)==0)
{
memset(DirectNULL512);
cout<<“Plase input the direct of your will(compelity Direct)::“< cin>>Direct;
if(memcmp(Direct“/“1)!=0)
{
memset(tempNULL512);
memcpy(temp“/“strlen(“/“));
memcpy(temp+strlen(“/“)Directstrlen(Direct));
memcpy(Directtempstrlen(temp));
}
client->setCommand(“CWD “Direct);
client->sendCommand();
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 176128 2009-07-17 00:33 FTP程序\ftpClient\debug\ftpClient.exe
目录 0 2009-07-17 02:57 FTP程序\ftpClient\debug
文件 6070 2009-07-17 00:33 FTP程序\ftpClient\ftpClient\Debug\BuildLog.htm
文件 145 2009-07-17 00:33 FTP程序\ftpClient\ftpClient\Debug\ftpClient.exe.intermediate.manifest
文件 229529 2009-07-17 00:33 FTP程序\ftpClient\ftpClient\Debug\ftpClient.obj
文件 131080 2009-07-12 21:48 FTP程序\ftpClient\ftpClient\Debug\ftpServer.obj
文件 67 2009-07-17 00:33 FTP程序\ftpClient\ftpClient\Debug\mt.dep
文件 306176 2009-07-17 00:33 FTP程序\ftpClient\ftpClient\Debug\vc80.idb
目录 0 2009-07-17 02:57 FTP程序\ftpClient\ftpClient\Debug
文件 14042 2009-07-17 00:35 FTP程序\ftpClient\ftpClient\ftpClient.cpp
文件 7599 2009-07-17 00:33 FTP程序\ftpClient\ftpClient\ftpClient.h
文件 3136 2009-07-13 14:05 FTP程序\ftpClient\ftpClient\ftpClient.vcproj
文件 1413 2009-07-17 02:56 FTP程序\ftpClient\ftpClient\ftpClient.vcproj.THINKPAD.IBM.user
文件 813 2009-01-03 12:55 FTP程序\ftpClient\ftpClient\pipe.txt
目录 0 2009-07-17 15:13 FTP程序\ftpClient\ftpClient
文件 11029504 2009-07-17 02:56 FTP程序\ftpClient\ftpClient.ncb
文件 892 2009-07-09 21:31 FTP程序\ftpClient\ftpClient.sln
..A..H. 14848 2009-07-17 02:56 FTP程序\ftpClient\ftpClient.suo
文件 813 2009-01-03 12:55 FTP程序\ftpClient\pipe.txt
目录 0 2009-07-17 15:13 FTP程序\ftpClient
文件 655872 2009-07-19 21:56 FTP程序\计算机网络课程设1.doc
目录 0 2009-07-19 21:56 FTP程序
----------- --------- ---------- ----- ----
12578127 22
- 上一篇:c++短路电流计算软件设计
- 下一篇:KCF源码代码
相关资源
- 基于TCP的网络聊天室的设计一步一步
- 用c++实现的抓包并分析协议
- diffie-hellman密钥交换协议vc++实现
- MFC编程实现socket通信
- 基于MFC的嗅探器
- 实现客户端与服务端的文件传输
- 完整socket c++
- Socket网络编程控制台+MFC TCP
- C语言搭建的简单web服务器
- c语言实现ftp文件传输
- 多人聊天室 C++
- 使用TCP简单文件传输控制台程序VC++
- C++编写的Socket通信程序源代码
- 利用MFC的Csocket类实现网络通信
- Socket文件传输
- C++ Socket网络聊天
- VC6.0 winsock编程.pdf
- MFC中利用CSocket实现UDP通信
- 基于MFC的CSocket类实现点对点通信
- 基于MFC的聊天室网络socket
- 基于MFC基本对话框的CSocket局域网通信
- traceroute在windows下的c++实现源代码
- MFC socket 服务器端编程
- 利用Socket实现双机通信C++
- C++ CAsyncSocket类聊天室程序
- VC6.0--计算器
- MFC websocket server | MFC websocket服务器
- C语言socket实现文件
- winsocket编程实现简单 server端和client端
- 基于C_S结构的Socket程序设计(含源码
评论
共有 条评论