难道这是IdHttp的宿命:Socket Error # 10054 ?

realside 2015-06-19 08:40:02
用TidHttp的GET方法来取东西,每次动态创建,完了先DISCONNECT方法,再FREEANDNIL,仍然有时报错:
Socket Error # 10054
Connection reset by peer.

刚开始程序运行不会,过段时间后就不行,如果断开路由器很久时间再连接又不会,怀疑这货连接到网站后根本就没断开,或是其它什么原因?求遇到过的人指点下。
...全文
2421 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
山水佳鱼 2017-05-10
  • 打赏
  • 举报
回复
idhttp的socket error # 10054 错误的处理办法: if idhttp1.Connected then idhttp1.Disconnect; idhttp1.Get('xxx');
yunshouhu 2015-06-29
  • 打赏
  • 举报
回复
引用 3 楼 realside 的回复:
[quote=引用 1 楼 earbao 的回复:] 这个应该是服务器端,把链接断开了,修改一下user-agent试试
如何修改?[/quote] 有些网站,如百度等,是禁止delphi 的TidHttp控件直接连接的, 所以需要修改http协议头部信息UserAgent:=Mozilla/3.0 (compatible; Indy Library),
procedure TForm4.Button6Click(Sender: TObject);
var
  str:string;
begin
  //百度屏蔽了indy的客户端标识的 Mozilla/3.0 (compatible; Indy Library),把‘Indy Library’去掉就可以了。
  //IdHTTP1.Request.UserAgent:='Mozilla/3.0 (compatible; Indy Library)';
  //IdHTTP1.Request.UserAgent:='Mozilla/5.0';
   IdHTTP1.Request.UserAgent := 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 1.1.4322)';
  Application.ProcessMessages;
  //str:=IdHTTP1.Get('http://tieba.baidu.com/'); //百度主页已经使用https了
  str:=IdHTTP1.Get('http://www.baidu.com/'); //百度主页已经使用https了
  ShowMessage(str);
end;
realside 2015-06-27
  • 打赏
  • 举报
回复
引用 1 楼 earbao 的回复:
这个应该是服务器端,把链接断开了,修改一下user-agent试试
如何修改?
lyhoo163 2015-06-27
  • 打赏
  • 举报
回复
引用 2 楼 lyhoo163 的回复:
Socket Error # 10054Connection reset by peer. 这是调用windows Socket出现错误。错误类型10054。主要原因是Socket连接时服务器中断,客户端强制连接(对等重复连接)情况。 原因比如: 一个现有的连接被远程主机强行关闭。这通常结果如果远程主机上的对等应用程序突然停止,重启主机,主机或远程禁用网络接口,或远程主机使用强行关闭。
说白了,就是服务器断线了。重启服务器试试,或是设置有问题。
lyhoo163 2015-06-20
  • 打赏
  • 举报
回复
Socket Error # 10054Connection reset by peer. 这是调用windows Socket出现错误。错误类型10054。主要原因是Socket连接时服务器中断,客户端强制连接(对等重复连接)情况。 原因比如: 一个现有的连接被远程主机强行关闭。这通常结果如果远程主机上的对等应用程序突然停止,重启主机,主机或远程禁用网络接口,或远程主机使用强行关闭。
yunshouhu 2015-06-19
  • 打赏
  • 举报
回复
这个应该是服务器端,把链接断开了,修改一下user-agent试试

1,593

社区成员

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

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