所以我正在使用tidhttp发布帖子请求.当我尝试设置connectTimeout时,无论什么时间段它都没有效果.在我得到例外之前我仍然等待~5秒.
提前致谢!
提前致谢!
解决方法
如果要连接到主机名而不是IP地址,则必须通过DNS查找将主机名解析为IP,这可能需要一些时间,特别是如果主机名尚未被操作系统缓存. ConnectTimeout属性不考虑该时间.
此外,当ConnectTimeout不为零或者正在使用TIdAntiFreeze时,Indy必须使用内部工作线程来执行对服务器的实际套接字API connect()调用.启动新线程可能需要一些时间,具体取决于当时可用的系统资源. ConnectTimeout也不考虑该时间.
ConnectTimeout的当前实现仅适用于实际的socket API connect()调用本身,而不适用于达到该点所需的任何额外工作.因此,如果您设置了5秒的ConnectTimeout值,则可能会在TIdTCPClient.Connect()退出之前超过5秒.