敬业的IT人 >> 编程开发 >> C++Builder >> 利用组件传送文件

利用组件传送文件

敬业的IT人 互联网 佚名 2008-1-3 21:17:23

  在Borland C++Builder中,使用NMStrmServ和NMStrm组件可以很容易地在两台电脑之间传递文件。当然,你也可以使用基于FTPJ协议的文件传输组件NMFTP,但使用NMStrmServ和NMStrm组件更加方便、快捷。

  首先,运行Borland C++ Builder,在窗体Form1中加入一个NMStrmServ组件和一个保存对话框组件SaveDialog。

  然后在NMStrmServ1的OnMSG事件中加入:

  //保存文件对话框

if(SaveDialog1-$#@62;Execute())

{

  //如果目标文件存在则删除

if (FileExists(SaveDialog1-$#@62;FileName))

DeleteFile(SaveDialog1-$#@62;FileName);

TFileStream *MyFStream;

  //建立文件

MyFStream = new TFileStream(SaveDialog1-$#@62;FileName, fmCreate);

try

{

MyFStream-$#@62;CopyFrom(strm, strm-$#@62;Size);

ShowMessage("接收成功!文件另存为"+SaveDialog1-$#@62;FileName);

}

catch(...)

{

ShowMessage("接收失败!");

}

  //释放

MyFStream-$#@62;Free();

}

  这样,一个接收文件的程序请做好了,紧接着我们做文件发送的程序:正文:进入讨论组讨论。
  再次运行Borland C++Builder,在新工程的窗体上加入一个NMStrm组件、一个OpenDialog组件、一个按钮Button组件、一个Label组件和一个Edit组件。把Button1的Caption属性改为“发送文件”,把Label1的Caption属性改为“接收主机:”,把Edit1的Text属性改为“127.0.0.1”。

  然后双击Button1,在它的OnClick事件中加入代码:

  //打开文件对话框

if (OpenDialog1-$#@62;Execute())

{

TFileStream *MyFStream;

MyFStream = new TFileStream(OpenDialog1-$#@62;FileName, fmOpenRead);

try

{

  //主机名

NMStrm1-$#@62;Host = Edit1-$#@62;Text;

NMStrm1-$#@62;FromName = "NetMasters";

  //发送

NMStrm1-$#@62;PostIt(MyFStream);

ShowMessage("文件"+OpenDialog1-$#@62;FileName+"发送成功!");

}

catch(...)

{

ShowMessage("文件"+OpenDialog1-$#@62;FileName+"发送失败!");

}

MyFStream-$#@62;Free();

}

  代码输入完毕,分别编译运行这两个程序。编译完成后,你就可以点击发送程序的“发送文件”按钮打开一个文件来传送到远程的主机了。本例中默认的接收主机IP地址是127.0.0.1,即本地计算机,你也可以在局域网中的其它计算机上运行接收程序,再在发送程序的主机名里填入该计算机的名字或IP地址,然后打开文件发送。发送成功后,接收程序收到文件并询问保存文件,选择要保存的路径及文件名即可保存接收到的文件。

  以上程序在Borland C++ Builder 5.0,Win98/Win2000中运行通过。图文结合:进入讨论组讨论。
粤ICP备06119539号
Copyright CiscoSky.Org,Some Rights Reserved.
Email:me1228#tom.com