delphi – TIdTCPClient:重新连接实现

delphi – TIdTCPClient:重新连接实现,第1张

概述我正在编写一个应用程序,它使用TIdTCPClient通过套接字与另一个应用程序通信. 我希望应用程序尝试连接到某个服务器,直到建立连接(即直到服务器上线). 为了做到这一点,我写了以下代码: procedure SendingThread.Execute();varI : integer;Test : string;IsConnected : Boolean;begin Tcp 我正在编写一个应用程序,它使用TIDTCPClIEnt通过套接字与另一个应用程序通信.

我希望应用程序尝试连接到某个服务器,直到建立连接(即直到服务器上线).

为了做到这一点,我写了以下代码:

procedure SendingThread.Execute();varI : integer;Test : string;IsConnected : Boolean;begin    TcpClIEnt := TIDTCPClIEnt.Create;    TcpClIEnt.Host := '127.0.0.1';    TcpClIEnt.Port := 9999;    TcpClIEnt.ConnectTimeout := 60000;    IsConnected := false;    while not IsConnected do        begin        try            TcpClIEnt.Connect;            IsConnected := True;        except            on E:EIDSocketError do                IsConnected := false;        end;    end;...end;

当我在服务器脱机时运行此代码时,我得到错误代码为10061的EIDSocketError.在TcpClIEnt.Connect;之后抛出异常.

如何修改代码,以便在异常中捕获此异常?

解决方法 不需要修改代码.*您的程序已经捕获了预期的异常.

您所看到的是调试器在您的程序有机会看到异常存在并对其执行任何 *** 作之前立即拦截异常.当IDE中断您时,它会显示一个对话框,为您提供继续运行的选项.执行该选项,或在关闭对话框后按“运行”按钮.

您可以将调试器配置为忽略部分或全部异常,这在使用Indy时特别有用,因为Indy倾向于使用异常进行正常流控制. How to do that has been covered here before.

* Remy的答案描述了您可以对代码进行的改进,以捕获其他可能的异常.

总结

以上是内存溢出为你收集整理的delphi – TIdTCPClient:重新连接实现全部内容,希望文章能够帮你解决delphi – TIdTCPClient:重新连接实现所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/langs/1237490.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存