IdTCPClient.ReadTimeout := 2000;
IdTCPClient.Connect(2000);设置完还得20多秒才超时!!!

解决方案 »

  1.   

    ReadTimeout:是读取数据的超时时间;2000即2秒没读到数据算超时
    Connect(time):time是连接Server的超时时间;2000即2秒没连接成功算超时这里并看不出问题所在,是否其它代码或设置有问题...
      

  2.   

    做了一个小例子也是这样。用的是indy9换10了也是一样!procedure TForm1.Button1Click(Sender: TObject);
    begin
      Memo1.Clear;
      IdTCPClient1.ReadTimeout := 1000;
      IdTCPClient1.Connect(1000);
      Memo1.Text := '11111111111111';
    end;
      

  3.   

    解决了。不知道会不会有别的影响!!!
    indy 空间IdIOHandlerSocket单元
            Terminate;
            Close;
            //WaitFor;//屏蔽掉
            FreeOnTerminate :=true;//新加
            raise EIdConnectTimeout.Create(RSConnectTimeout);
          end;
        finally
        //Free;//屏蔽掉
        end;