当前位置:主页   - 电脑 - 程序设计 - C/C++
BCB利用组件传送文件
来源:网络   作者:   更新时间:2012-01-04
收藏此页】    【字号    】    【打印】    【关闭

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

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

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

  //保存文件对话框
if(SaveDialog1->Execute())
{
//如果目标文件存在则删除
if (FileExists(SaveDialog1->FileName))
  DeleteFile(SaveDialog1->FileName);
TFileStream *MyFStream;
//建立文件
MyFStream = new TFileStream(SaveDialog1->FileName, fmCreate);
try
  {
  MyFStream->CopyFrom(strm, strm->Size);
  ShowMessage("接收成功!文件另存为"+SaveDialog1->FileName);
  }
catch(...)
  {
  ShowMessage("接收失败!");
  }
//释放
MyFStream->Free();
}

  这样,一个接收文件的程序请做好了,紧接着我们做文件发送的程序:

  再次运行Borland C++ Builder,在新工程的窗体上加入一个NMStrm组件、一个OpenDialog组件、一个按钮Button组件、一个Label组件和一个Edit组件。把Button1的Caption属性改为“发送文件”,把Label1的Caption属性改为“接收主机:”,把Edit1的Text属性改为“127.0.0.1”。

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

  //打开文件对话框
if (OpenDialog1->Execute())
{
TFileStream *MyFStream;
MyFStream = new TFileStream(OpenDialog1->FileName, fmOpenRead);
try
  {
  //主机名
  NMStrm1->Host = Edit1->Text;
  NMStrm1->FromName = "NetMasters";
  //发送
  NMStrm1->PostIt(MyFStream);
  ShowMessage("文件"+OpenDialog1->FileName+"发送成功!");
  }
catch(...)
  {
  ShowMessage("文件"+OpenDialog1->FileName+"发送失败!");
  }
MyFStream->Free();
}

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

  以上程序在Borland C++ Builder 5.0,Win98/Win2000中运行通过。

其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明