TIdTCPClient1.Connect(500);
连接失败时,有时能够在500返回,有时需要几十秒返回,为什么呢

解决方案 »

  1.   

    我也碰到这个问题,这个问题主要出现在不存在的ip情况下,最好先ping一下后连接。
      

  2.   

    很多IP是不允许PING的,好像隔三五次就有一次时间很长的。
      

  3.   

    重现很容易的,谁有时间帮看一下
    procedure TForm1.Button1Click(Sender: TObject);
    var
      i: Integer;
      b: Cardinal;
    begin
      for i:= 0 to 100 do begin
        try
          b:= GetTickCount;
          IdTCPClient1.Connect(500);
        except    end;
        b := GetTickCount -B;
        Memo1.Lines.Add(FloatToStr(b));
      end;
    end;
      

  4.   

    随便指定一个连接不上的IP和Port
      

  5.   

    有没有人搞过,看INdy的代码一天,没有进展,调connect系统函数直接死住了。
      

  6.   

    你可以ping指定的端口号,为什么不行呢