资源简介
自己编写的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源码代码
相关资源
- C++多线程网络编程Socket
- socket客户端.c
- socket服务端.c
- socket tcp应用
- 西北大学2015年计算机网络复试真题回
- socket通讯c++源码(客户端+服务端)
- MFC的异步网络通讯应用程序
- 各种关于CAsyncSocketCSocket内幕及其用法
- MFC多人聊天室
- 使用socket套接字发送udp数据包
- CAsyncSocket异步实现服务器与客户端
- 基于socket文件传输的实现源码[C++]
- 计算机网络课设-邮件客户端实现(含
- C语言实现TCP/IP协议通信和UDP协议通信
- c语言+UDP+DES加密+socket编程
- 局域网下,手机可以和电脑通过sock
- 计算机网络课程设计之Ping程序含C++原
- 基于c++和winsocket的局域网聊天源代码
- 基于udp的socket编程
- VC++,CSocket实现网络聊天,可发文件,
- 基于TCP协议的文件传输编程
- Socket编写的一个基于MFC的聊天程序源
- C++写的网络共享白板
- 基于TCP/IP socket的局域网聊天系统
- C++编写的多线程C/S模式仿QQ软件
- 计算机网络实验设计---基于TCP的网络
- c++ socket 实现 语音 通信 双工
- 计算机网络课设代码+报告
- MFC Csocket实现点对点文件传输
- 使用ARP协议获取局域网内部活动主机
评论
共有 条评论