环境:delphi 6.0 
TIdTCPClient 发送数据给服务器,如果服务器超过10秒没返回刚发送的数据,此时认为链路有问题,需要重新连接。
如何实现10秒超时后重新连接?

解决方案 »

  1.   

    把TIdTCPClient的ReceiveTimeout设置为10000,没有收到数据,ReceiveString会报异常,重新连接就可以了
      

  2.   

    如果是DELPHI7的话,只有Self.IdTCPClient1.ReadTimeout := 10000;
      

  3.   

    为什么我的TIdTCPClient 里面没这个属性呢?
    是不是我的indy版本低了?
      

  4.   

    除了设置ReceiveTimeout 外,楼主要求的服务器10秒之内返回刚发送的数据则需要服务器端进行处理
      

  5.   

    呵呵,搞错了,TCP的是ReadTimeout,UDP的是ReceiveTimeout
      

  6.   

    应该是delphi7可以使用这个,而6不可以,不过6可以使用ReadFromStack(True,1000,True,nil);来尝试测试链路数据是否有,该函数返回当前链路上的数据个数,如果大于0应该就有数据过来。
    你门说呢?