我遇到奇怪问题,自己写了一段测试网络连接的代码,分放到两个不同的程序里面。在一台电脑上面运行后,一个是连接成功,一个是连接失败。
而且不但是这段代码,使用IdHttp,ICS里面THttpCli读取网页的操作,分别放到这两个程序,一个能返回结果正常,一个直到超时了都没响应。
我自己猜测,可能跟这台电脑环境有关系,因别我试过别的电脑,两个程序都能正常访问网络;
也可能跟那个连接失败的程序有关系,但我始终想不明白,哪里代码写的有问题吗?
先说一下,这电脑是用宽带上网的,登QQ,访问网页速度很快,Ping命令也正常。
procedure TSetProxyFrm.Button1Click(Sender: TObject);
begin
  ZoCInetChecker1 := TZoCInetChecker.Create(nil);
  if rbNoProxy.Checked then
    ZoCInetChecker1.AccessType := atDirectConnect
  else if rbIEProxy.Checked then
    ZoCInetChecker1.AccessType := atPreConfig
  else begin
    ZoCInetChecker1.AccessType := atProxy;
    ZoCInetChecker1.Proxy := 'SOCKS=' + trim(PServerEdt.Text) + ':' + trim(PPortEdt.Text);
  end;
  ZoCInetChecker1.Url := 'http://www.baidu.com/';
  ZoCInetChecker1.AsynRequest := True;
  ZoCInetChecker1.OnComplete := ZoCInetChecker1Complete;
  tipMem.Text := '正在测试网络连接...';
  tipMem.Font.Color := clBlue;
  ZoCInetChecker1.Execute;
end;procedure TSetProxyFrm.ZoCInetChecker1Complete(Sender: TObject; Connected: Boolean);
begin
  with tipMem do
    if Connected then begin
      Text := '网络连接成功,软件可以正常使用!';
      Font.Color := clGreen;
    end else begin
      Text := '网络连接失败,请尝试使用其它方式!';
      Font.Color := clRed;
    end;
  ZoCInetChecker1.Free;
end;