gpt4 book ai didi

Delphi Indy - Eidconnclosedgracefully 使套接字无法使用

转载 作者:可可西里 更新时间:2023-11-01 15:14:05 25 4
gpt4 key购买 nike

场景:

Delphi 2010 从 svn trunk 运行最新的 Indy 版本。

我有一个使用 idHTTP 发送 http 请求的应用程序。只要应用程序运行,此 idHTTP 仅创建一次并保存在内存中。我向同一个http服务器(也是我开发的应用程序)发送了很多网络请求。

我正在使用 keep-alive 来保持套接字连接。

在几次请求之后,我得到一个 EIdConnClosedGracefully在客户端,不管我在收到此异常后做了什么,对同一服务器的每个后续请求都会生成相同的异常

我已尝试断开连接、关闭套接字、清除 IOHandler 缓冲区,但均无效果。

如果我销毁 IdHttp 对象并在异常发生后重新创建它,一切正常。但这不是我想要的,因为我需要一直连接到服务器(以避免 TIME_WAITS 等)。

有谁知道如何处理EIdConnClosedGracefully客户端异常并在异常发生后使 idHttp 工作?

编辑

我自己开发了网络服务器,我肯定不会在客户端请求后断开连接。我知道这个异常是可以的,但不正常的是套接字在那之后变得不可用。 Indy 应该从此异常中恢复,断开套接字并在需要时重新连接它。正如我所说,这个异常正在向用户显示,而不仅仅是在 Delphis IDE 上。我真正需要的是在得到这个异常之后,我必须能够继续使用这个套接字的方法。 –

最佳答案

调用 TIdHTTP.Disconnect(False)TIdHTTP.IOHandler.InputBuffer.Clear() 应该是恢复所需的全部。

关于Delphi Indy - Eidconnclosedgracefully 使套接字无法使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8295929/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com