出现“connection closed gracefully”.
connection closed gracefully 意思是连接到服务器,但服务器没有响应.温和关闭
很多Indy组件的用户常常因为 Indy server 抛出的EIdConnClosedGracefully 异常而烦恼,特别是 HTTP 和其他的server。EIdConnClosedGracefully 是连接已经被另一方故意的关闭的象征。这与导致连接复位的错误所致的断开的连接不同。如果另一方已经关闭了连接,并且仍然向套接字中读写,Indy组件将 会抛出EIdConnClosedGracefully异常。这与您尝试向一个在您不知情的情况下被关闭的文件中读写数据是很相似的。
因为对于从EIdSilentException继承来的服务器,EIdConnClosedGracefully是一个正常的异常。您可以在 “Tools”菜单的“Debugger Options”的“Language Exceptions”选项卡中将EIdSilentException加到忽略的异常的列表中。当加到忽略的异常的列表中后这个异常仍然会在代码中触发 并被处理,但是调试器将不会停止程序的运行。
-----------------------
再对 idhttp 这个实例进行操作 去 get 任何一个网址都报同一个异常 Connection Closed Gracefully
重新去Get其他网址之前,试试这样操作,IdHTTP1.IOHandler.Close;,然后再去Get,这样就不会报Connectoin Closed Gracefully了
-------------------
idhttp1.Disconnect;
idhttp1.Free;
idhttp1:=tidhttp.Create(nil);
---------------
点击菜单"tools"-->"debugger options"的标签Language exceptions,点击add 输入:
eidconnclosedgracefully 然后点击按钮"ok"就可以了!
解决报"Connection Closed Gracefully"的错误提示呀!
还有IndyDemos里面的TCPStreamClientServer我刚才看了,运行完全没有问题呀!
网友评论