如何实现程序间互传文件!要求源代码(100分)

  • 主题发起人 主题发起人 Daiver
  • 开始时间 开始时间
D

Daiver

Unregistered / Unconfirmed
GUEST, unregistred user!
如何实现程序间互传文件!要求源代码
 
两个程序是在同一台电脑上还是不同的电脑?
 
如果你的意思是socket互传的话,看看这个,否则就当我没说吧
---------------------------------------------------------
(一)用nmstrm,nmstrmserv
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Psock, NMSTRM;
type
TForm1 = class(TForm)
NMStrm1: TNMStrm;
NMStrmServ1: TNMStrmServ;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure NMStrmServ1MSG(Sender: TComponent;
const sFrom: String;
strm: TStream);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var
MyStream: TMemoryStream;
begin
MyStream:= TMemoryStream.Create;
try
NMStrm1.Host:='127.0.0.1';
MyStream.LoadFromFile('c:/test.exe');
NMStrm1.FromName:='c:/test1.exe';
//发送一个文件名
NMStrm1.PostIt(MyStream);
finally
MyStream.Free;
end;
end;

procedure TForm1.NMStrmServ1MSG(Sender: TComponent;
const sFrom: String;
strm: TStream);
var
MyStream: TMemoryStream;
begin
MyStream := TMemoryStream.Create;
MyStream.LoadFromStream(strm);
MyStream.SaveToFile(sFrom);
end;

end.

而且Delphi有自带的一个例子,在Delphi/demo/fastnet/strm目录里就是实现的文件传输。
-----------------------------------------------------------------------
(二)用nmftp
给个通俗的:(ftp客户方用fastnet下的nmftp控件)
nmftp1.Host:=xxx.xxx.xxx.xxx;
nmftp1.port:=21;
nmftp1.Connect;
nmftp1.userid:=xxx;
nmftp1.password:=xxx;
nmftp1.reportlevel:=1;
nmftp1.timeout:=xxxx;
nmftp1.Download(ftp服务器上的文件,存为本地哪个文件);
(下载)
nmftp1.Abort;(暂停下载)
nmftp1.Downloadrestore(ftp服务器上的文件,存为本地哪个文件);(下载的断点续传)
nmftp1.upload(xxxxx,xxxxx);
(上传)
nmftp1.upload(xxx.xxxx);
(上传的断点续传)
如果你想自己做一个ftp服务器,delphi没有自带的控件
可以用ics控件组上的ftpserver控件
 
如果是同一台机器的不同进程的话
可以用共享内存的方法
查看
CreateFileMapping
FlushViewOfFile
MapViewOfFile
MapViewOfFileEx
OpenFileMapping
UnmapViewOfFile
的win32帮助
 
多人接受答案了。
 
后退
顶部