
试验了半天没试验出来,
干脆直接调用脚本
#include<stdioh>
#include<stdlibh>
main()
{
system("你的脚本");
}
前四个字节是这样,比如“220 ProFTPD 132c Server (Debian) [101055203]”
前四个字节就是220空格,这个代表了服务主机的返回码
atoi那个把字符串转成整型,n就=220了
DELPHI 可以用indy 控件来制作FTP程序,很简单的! 随便在网上找一篇。。
Unit1;interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdFTP;
type
TForm1 = class(TForm)
IdFTP1: TIdFTP;
Button1: TButton;
Memo1: TMemo;
Edit1: TEdit;
Button2: TButton;
Label1: TLabel;
Button3: TButton;
OpenDialog1: TOpenDialog;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure IdFTP1Status(ASender: TObject; const AStatus: TIdStatus;
const AStatusText: String);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses IdFTPList, IdFTPCommon;
{$R dfm}
{
本程序是一个ftp demo程序,我用windows信息服务在本机建立了一个ftp服务,
本机IP:1921681099
用户名:cc
密码:1
}
procedure TForm1Button1Click(Sender: TObject);
var
tr : Tstrings;
begin //连接
tr := TStringlistCreate;
IdFTP1Host := '1921681099'; //FTP服务器地址
IdFTP1Username := 'cc'; //FTP服务器用户名
IdFTP1Password := '1'; //FTP服务器密码
IdFTP1Connect(); //连接到ftp
Edit1Text := IdFTP1RetrieveCurrentDir;//得到初始目录
IdFTP1ChangeDir('client'); //进入到client子目录
//IdFTP1ChangeDir(''); //回到上一级目录
IdFTP1List(tr); //得到client目录下所有文件列表
Memo1LinesAssign(tr);
trFree;
end;
procedure TForm1Button2Click(Sender: TObject);
var
tt :TIdFTPListItems;
t : TIdFTPListItem;
i : integer;
tfname : String;
begin //下载
Label1Caption := IdFTP1DirectoryListingItems[0]FileName;
IdFTP1TransferType := ftBinary; //指定为二进制文件 或文本文件ftASCII
for i:=0 to IdFTP1DirectoryListingCount-1 do
begin
tt := IdFTP1DirectoryListing; //得到当前目录下文件及目录列表
t := ttItems[i]; //得到一个文件相关信息
Label1Caption :=tText; //取出一个文件信息内容
tfname := tFileName;
showmessage(tOwnerName+' '+tGroupName+' '+tFileName+' '+tLinkedItemName);
if IdFTP1DirectoryListingItems[i]ItemType = ditFile then //如果是文件
begin
IdFTP1Get(tfname,'d:/FTPtest/'+tfname,True,True); //下载到本地,并为覆盖,且支持断点续传
end;
end;
end;
procedure TForm1Button3Click(Sender: TObject);
var
fi : string;
begin //上传
if OpenDialog1Execute then
begin
fi := OpenDialog1FileName;
IdFTP1Put('f:/测试文档样本rar','测试文档样本rar');//上传,
end;
end;
procedure TForm1IdFTP1Status(ASender: TObject; const AStatus: TIdStatus;
const AStatusText: String);
begin
{case AStatus of
hsResolving : showmessage('hsResolving');
hsConnecting: showmessage('hsConnecting');
hsConnected: showmessage('hsConnected');
hsDisconnecting: showmessage('hsDisconnecting');
hsDisconnected: showmessage('hsDisconnected');
hsStatusText: showmessage('hsStatusText');
ftpTransfer: showmessage('文件传送完毕。');
ftpReady: showmessage('准备传送文件');
ftpAborted: showmessage('传送失败');
end; }
//showmessage(AStatusText);
end;
end
一、需要的知识点:
1、SOCKET技术,网络编程的基本功能
2、FTP
3、如果需要自己写,可能需要熟悉各个网络框架
二、编写FTP所需要掌握的框架
1、wininet
2、libcurl
以上就是关于求C++中用于实现简单FTP上传功能的代码(LINUX环境)全部的内容,包括:求C++中用于实现简单FTP上传功能的代码(LINUX环境)、一个FTP客户端的C语言程序中的一个函数不懂、delphi ftp的上传于下载程序的代码中如果想去自己指定的端口而不去默认端口21该怎么办啊 求大神告知。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)