F
For_Loop
Unregistered / Unconfirmed
GUEST, unregistred user!
我用的是ics的控件FtpClient ,服务器是unix系统,现在有个问题,我 ping 服务器的时候,连接是很通畅的,就是 time=12ms(基本上都是这样),可是我上传文件的时候出现时常上传失败的情况,是因为网络状况不好吗??
其中timeout=2000
procedure TMainForm.Timer3Timer(Sender: TObject);(
begin
sendsms;
end;
timer3设6分钟一次
procedure TMainForm.SendSMS;
VAR
i:integer;
DFILE:TSTRINGLIST;
begin
if fileexists(gsmtxt) then
begin
memo1.lines.add(formatdatetime('yy-mm-dd hh:nn:ss',now)+'....开始上传,文件存在');
dfile:=tstringlist.create();
dfile.LoadFromFile(gsmtxt);
for i:=0 to dfile.count -1 do
memo1.lines.add(dfile);
dfile.Free ;
try
FtpClient1.LocalFileName := gsmtxt;
ExecuteCmd(FtpClient1.AppendFile, FtpClient1.AppendFileAsync);
netOK:=true;
statusbar1.panels[0].Text :=
'网络连接正常';
sending:=false;
except
Netok:=false;
memo1.lines.add(formatdatetime('yyyy-mm-dd hh:nn:ss',now) +'网络连接异常');
sending:=false;
end;
end else
begin
memo1.lines.add(formatdatetime('yy-mm-dd hh:nn:ss',now)+'....开始上传,文件不存在');
sending:=false;
end;
end;
procedure TMainForm.FtpClient1RequestDone(Sender: TObject;
RqType: TFtpRequest; ErrCode: Word);
begin
if Errcode = 0 then
begin
netok:=true;
statusbar1.panels[0].Text :=
'网络连接正常';
sending:=false;
end
else
begin
Netok:=false;
statusbar1.panels[0].Text :=
'网络未连接';
memo1.lines.add(formatdatetime('yyyy-mm-dd hh:nn:ss',now)+'....网络出现错误');
sending:=false;
end;
if Errcode = 0 then
begin
case RqType of
ftpAppendAsync:
begin
statusbar1.panels[0].Text := ' 上传成功';
//***************************
memo1.lines.add(formatdatetime('yyyy-mm-dd hh:nn:ss',now)+'....上传完成');
if fileexists(gsmtxt) then
begin
deletefile(gsmtxt);
memo1.lines.add(formatdatetime('yy-mm-dd hh:nn:ss',now)+'....删除文件');
end;
end;
end;
sending:=false;
end;
end;
每次上传的文件不大,纯字符。
例程基本上是按照ics控件的demo写的,各位大虾帮看一下哟!!
如果是网络问题,有没有解决办法?
其中timeout=2000
procedure TMainForm.Timer3Timer(Sender: TObject);(
begin
sendsms;
end;
timer3设6分钟一次
procedure TMainForm.SendSMS;
VAR
i:integer;
DFILE:TSTRINGLIST;
begin
if fileexists(gsmtxt) then
begin
memo1.lines.add(formatdatetime('yy-mm-dd hh:nn:ss',now)+'....开始上传,文件存在');
dfile:=tstringlist.create();
dfile.LoadFromFile(gsmtxt);
for i:=0 to dfile.count -1 do
memo1.lines.add(dfile);
dfile.Free ;
try
FtpClient1.LocalFileName := gsmtxt;
ExecuteCmd(FtpClient1.AppendFile, FtpClient1.AppendFileAsync);
netOK:=true;
statusbar1.panels[0].Text :=
'网络连接正常';
sending:=false;
except
Netok:=false;
memo1.lines.add(formatdatetime('yyyy-mm-dd hh:nn:ss',now) +'网络连接异常');
sending:=false;
end;
end else
begin
memo1.lines.add(formatdatetime('yy-mm-dd hh:nn:ss',now)+'....开始上传,文件不存在');
sending:=false;
end;
end;
procedure TMainForm.FtpClient1RequestDone(Sender: TObject;
RqType: TFtpRequest; ErrCode: Word);
begin
if Errcode = 0 then
begin
netok:=true;
statusbar1.panels[0].Text :=
'网络连接正常';
sending:=false;
end
else
begin
Netok:=false;
statusbar1.panels[0].Text :=
'网络未连接';
memo1.lines.add(formatdatetime('yyyy-mm-dd hh:nn:ss',now)+'....网络出现错误');
sending:=false;
end;
if Errcode = 0 then
begin
case RqType of
ftpAppendAsync:
begin
statusbar1.panels[0].Text := ' 上传成功';
//***************************
memo1.lines.add(formatdatetime('yyyy-mm-dd hh:nn:ss',now)+'....上传完成');
if fileexists(gsmtxt) then
begin
deletefile(gsmtxt);
memo1.lines.add(formatdatetime('yy-mm-dd hh:nn:ss',now)+'....删除文件');
end;
end;
end;
sending:=false;
end;
end;
每次上传的文件不大,纯字符。
例程基本上是按照ics控件的demo写的,各位大虾帮看一下哟!!
如果是网络问题,有没有解决办法?