1、可以利用FTP方式,在服务器驾设一个FTP服务器,在DEPHI中只要用FTP控件就可以直接传送!,ftp上传可以去度娘查……相当多
2、利用//192.168.0.1方式
,这种方式等同于copy!
1.既然你要实现文件互传,那一般只能使用TCP方式(因为文件数据量一般比较大),那么在服务端使用TCP控件Listen,在客户端也使用TCP控件进行连接(connect),然后就可以了。如果你要实现双向传输,正如你所说,两边都要有服务端和客户端,即做一个软件,放两个TCP控件,一个用于服务端,一个用于客户端。2.至于你后面一种情况,实际上这是一个你无法直接通过编程解决的问题(本质上是NAT,即1个外网IP=n个内网IP)。目前解决的方法是:
1)使用VPN,现成的是VNN软件(北京一个公司开发的,可以免费使用7天);
2)自己做个中转(中转软件运行一定要有外网地址),然后实现文件传输前,两个传输方都登录中转,所有传输通过中转软件就可以了。
目前我只知道这两种方法,如果有第三种,也请告诉我,谢谢!
delphi 提供了 indy 组件包,其中 TIdFTP 可以实现通过以 FTP 方式进行文件的上传与下载。示例代码如下:
procedure TForm1.Button2Click(Sender: TObject)var
tt :TIdFTPListItems
t : TIdFTPListItem
i : integer
tfname : String
begin
IdFTP1.TransferType := ftBinary //指定为二进制文件 或文本文件ftASCII
for i:=0 to IdFTP1.DirectoryListing.Count-1 do
begin
tt := IdFTP1.DirectoryListing //得到当前目录下文件及目录列表
t := tt.Items[i] //得到一个文件相关信息
Label1.Caption :=t.Text //取出一个文件信息内容
tfname := t.FileName
showmessage(t.OwnerName+' '+t.GroupName+' '+t.FileName+' '+t.LinkedItemName)
if IdFTP1.DirectoryListing.Items[i].ItemType = ditFile then //如果是文件
begin
IdFTP1.Get(tfname,'d:\FTPtest\'+tfname,True,True) //下载到本地,并为覆盖,且支持断点续传
end
end
end
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)