求C++中用于实现简单FTP上传功能的代码(LINUX环境)

求C++中用于实现简单FTP上传功能的代码(LINUX环境),第1张

试验了半天没试验出来,

干脆直接调用脚本

#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该怎么办啊 求大神告知。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10175315.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存