如果用Socket控件的话也很容易,采用tcp/ip协议,
客户端socket发送请求和文件名,服务器端接受传送,
客户端再一次次接受就ok了,就像握手方式似的
客户端socket发送请求和文件名,服务器端接受传送,
客户端再一次次接受就ok了,就像握手方式似的
解决方案 »
- 函数或者过程使用不同窗体的控件问题?
- 如何截获系统桌面刷新消息?
- LOG文件的读取。
- 有没有这样的控件
- 一个关于截获异常的问题!!!!!!急!在线等!!!
- 在win2000下如何調用API函數關機?
- 如何使用DbGrid组件编辑修改数据库表?
- 1000分求救,请“斑竹”和各位“Delphi高手”入内, 提供类似该问题精彩控件下载网址者,也有分哦!
- 简单的TQuery的问题!
- if (midiOutGetNumDevs()>0) then MediaPlayer1.Play; 有错呢??
- 关于move(buffer^,pchar(@rbuf^),bufferlength); 语句的求助
- 有这样的函数吗?如果是A就返回它的ASII值65
mynet:=GetNetDomain;
querycommon.Close;
querycommon.SQL.Clear;
querycommon.SQL.Add('select * from jtsjk.ftpxxb where domain='''+mynet+'''');
querycommon.Open;
if querycommon.RecordCount>0
then myftp:=querycommon.fieldbyname('ftphost').asstring
else MessageDlg('该网段的FTP主机地址丢失,请通知系统管理员!',mtWarning, [mbOk], 0);
with querycommon do
begin
close;
sql.clear;
sql.Add('select * from jtsjk.BBXXB where mkmc='''+mkmc+''' and beiy1='''+publicform.ywqdm+'''');
open;
if recordcount>0 then
begin
if fieldbyname('zxbb').asstring>bbh then
begin
if (fieldbyname('gxbz').asstring<>'1')and(fieldbyname('gxbz').asstring<>'0')
then begin close;exit;end;
if fieldbyname('gxbz').asstring='1' then
if infoselform.showbox('版本已经更新,是否现在下载新软件?')=false
then begin close;exit;end;
publicform.Tag:=9;
if fieldbyname('gxbz').asstring='0' then
infodlgform.showbox('版本已经更新,现在下载新软件!');
if DirectoryExists(bakdir)=false then MkDir(bakdir);
CopyFile(PChar(initdir+'\'+fieldbyname('ftpfile').asstring),PChar(bakdir+'\'+fieldbyname('ftpfile').asstring),false);
DeleteFile(initdir+'\'+fieldbyname('ftpfile').asstring);
NMFTP1.Host:=myftp;
NMFTP1.UserID:=fieldbyname('ftpuser').asstring;
NMFTP1.Password:=fieldbyname('ftppass').asstring;
try
NMFTP1.Connect;
except
infodlgform.showbox('版本更新时,连接服务器失败!请与市局联系!');
close;
exit;
end;
try
s:=fieldbyname('ftpfile').asstring;
if fileexists(initdir+'\'+s)=true then
begin
if DirectoryExists(bakdir)=false then MkDir(bakdir);
CopyFile(PChar(initdir+'\'+s),PChar(bakdir+'\'+s),false);
if deletefile(initdir+'\'+s)=false then
begin
infodlgform.showbox('请退出所有程序,并手工更新软件!');
close;
exit;
end;
end;
if DirectoryExists(initdir)=false then MkDir(initdir);
NMFTP1.ChangeDir(fieldbyname('ftpdir').asstring);
NMFTP1.Mode(mode_image);
NMFTP1.Download(s,initdir+'\'+s);
NMFTP1.Disconnect;
except
infodlgform.showbox('版本更新时,取文件失败!请与省局联系!');
close;
exit;
end;
infodlgform.showbox('新软件已下载!,请退出并运行文件'+initdir+'\'+s);
close;
close;
sql.clear;
sql.add('update ywsjk.YW_DLJLB set dlbz=:dlbz, out_sj= :out_sj where dlgh=:dlgh and dlbz=:dlbz2');
parambyname('dlgh').asstring:=publicform.czygh;
parambyname('out_sj').asdatetime:=now;
parambyname('dlbz').asstring:='2';
parambyname('dlbz2').asstring:='1';
execsql;
winexec(pchar(initdir+'\'+s),sw_normal);
application.terminate;
end;
close;
exit;
end;
close;
end;
end;