高手问题——idhttp如果屏蔽#10053错误

inseasoft 2005-04-20 03:07:58
现有一函数代码
Function Get_For_Host_ByIdHttp(aHost , aUrl: string) : Boolean ;
var
IdHTTP1: TIdHTTP;
begin
try
Result := True;
IdHTTP1 := TIdHTTP.Create(nil);

with IdHTTP1 do
begin
try
ReadTimeout := 15000;
Port := 80 ;
Host := aHost;
Connected ;

DataString := Get(aUrl) ;
except
on E: Exception do
begin
Result := False;
end;
end;
end;
finally
IdHTTP1.DisconnectSocket ;
IdHTTP1.Free;
end;
end


有一线程不停调用该函数,时间长后会出现#10053错误。并且该函数无法继续执行,导致线程中断。但重新启动一下线程又恢复正常。请问各位高手有什么办法能够屏蔽该错误,能让该函数能够稳定的执行。即使出错也能够跳出去。

不胜感谢
...全文
386 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
addua 2005-05-04
  • 打赏
  • 举报
回复
try except 不可以屏蔽异常吗
yeeyee 2005-04-26
  • 打赏
  • 举报
回复
// 差不多就是这样,如果有点小错误,自己改下
try

except
on e;Exception do
begin
if e.Message='Socket Error # 10053'++#13+#10+Software caused connection abort.'
begin
eixt;
end;
end;
end;

//用户名称不对,为空的情况。
if st='''USER '': Invalid number of parameters'+#13+#10 then
begin
ETips:='登录文件服务器的用户名称不对,请认真输入';
end;
vinsonshen 2005-04-22
  • 打赏
  • 举报
回复
up
inseasoft 2005-04-20
  • 打赏
  • 举报
回复
?
inseasoft 2005-04-20
  • 打赏
  • 举报
回复
怎么没有人懂?????????
inseasoft 2005-04-20
  • 打赏
  • 举报
回复
应该没有什么关系吧
darkie28 2005-04-20
  • 打赏
  • 举报
回复
IdHTTP1你是动态建立的,然后finally把他free掉了,可是用线程,经常会重复掉用你动态建立的东西,你把他free掉,会不会出问题?建议你还是从控件中拉一个idhttp吧.
inseasoft 2005-04-20
  • 打赏
  • 举报
回复
具体错误如下

Socket Error # 10053
Software caused connection abort.
inseasoft 2005-04-20
  • 打赏
  • 举报
回复
TO darkie28(小二黑)
这种方法也不能屏蔽该错误。
darkie28 2005-04-20
  • 打赏
  • 举报
回复
既然出错也能够稳定执行,那把出错处理的语句给去掉.
except
on E: Exception do
begin
Result := False;
end;
end;

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧