谁知道这个问题是由什么产生的?是关于server的回应!!!!!!!(100分)

  • 主题发起人 主题发起人 qby
  • 开始时间 开始时间
Q

qby

Unregistered / Unconfirmed
GUEST, unregistred user!
当client与server交互时,产生了"connection closed gracefully",这是什么原因造成的呢?
 
内存泄漏!
例如:用P^的地方用了P
 
同意楼上意见
 
内存出错
 
我是在使用Indy9的TIdTCPClient向smtp server发送"MAIL","RCPT TO","DATA"命令时发现的问题,当把ReadTimeOut设的很大,如:180000时就会发生这个问题,值比较小时不会发生..

......
 
Connection Closed Gracefully : 温和的关闭连接
这是indy server 抛出的EIdConnClosedGracefully异常。
出现这个问题的有可能原因是:服务器没有响应。
关于这个异常的详细说明:
很多Indy组件的用户常常因为Indy server抛出的EIdConnClosedGracefully异常而烦恼,特别是HTTP和其他的server。EIdConnClosedGracefully是连接已经被另一方故意的关闭的象征。这与导致连接复位的错误所致的断开的连接不同。如果另一方已经关闭了连接,并且仍然向套接字中读写,Indy组件将会抛出EIdConnClosedGracefully异常。这与您尝试向一个在您不知情的情况下被关闭的文件中读写数据是很相似的。
在有些情况下这是一个真的异常,你需要编程处理它。在另外一些情况下(典型的服务器),这是协议功能的正常的一部分,Indy组件会为您处理这个异常。即使Indy组件捕捉到了这个异常,当在IDE编程环境中运行时,调试器也将会首先触发它。你只要按F9键继续运行,Indy组件将会处理这个异常,但是在调试期间不断的停止运行是非常烦人的。在Indy组件捕捉到这个异常的情况下,除非在IDE中运行,否则您的用户将不会再看到异常提示。

简单的解决方法:
因为对于从EIdSilentException继承来的服务器,EIdConnClosedGracefully是一个正常的异常。您可以在“Tools”菜单的“Debugger Options”的“Language Exceptions”选项卡中将EIdSilentException加到忽略的异常的列表中。当加到忽略的异常的列表中后这个异常仍然会在代码中触发并被处理,但是调试器将不会停止程序的运行。

如果还不太明白,更详细地介绍可以参考这篇文章:
http://www.csdn.net/Develop/article/23%5C23137.shtm
 
To 纯粹新手:
非常感谢你的帮助!对这个问题我还有个疑问,就是为什么把ReadTimeOut属性设的很大时(如:180000)就会出问题,而设的较小时则不会呢?
祝你新年愉快!
祝大富翁的所有朋友新年愉快!
 
后退
顶部