Delphi XE3在IDE或调试版本中运行时出现Indy 10错误,而不是发行版本

时间:2013-01-04 14:22:52

标签: delphi indy10 delphi-xe3

运行代码以连接到TLama提供的Gmail How to login to a Gmail account and get number of messages in a mailbox with TIdIMAP4?它在Delphi 5和Delphi 2007中运行得非常好。

我在Delphi XE3上尝试相同的代码,但奇怪的是我在IDE中或者直接从文件资源管理器启动\ win32 \ debug目录中生成的exe时出现'Socket Error#10061 Connection refused'错误。如果我启动\ Win32 \ release目录中生成的.exe,它可以正常工作!

我试图将ssleay32.dll和libeay32.dll放在所有类型的目录中,但它仍然不起作用,我不确定它与此有关。

Indy on Delphi XE3是10.5.9.0版。 (我的Delphi XE3 Update 1最初附带的内容)。

任何帮助都非常感谢!

1 个答案:

答案 0 :(得分:0)

套接字错误10061表示两件事之一:

  1. 您尝试连接到一个完全没有侦听连接的IP /端口。

  2. 您尝试连接到正在侦听连接的IP /端口,但在该特定时刻没有任何可用的插槽来接受新的客户端连接。

  3. 无法区分客户端的两种可能性。

    Indy如何在Debug和Release版本中管理其套接字应该没有区别。您看到的问题与DLL无关,因为在首先建立基础套接字连接之前不会调用它们(但是,您可以使用IdOpenSSLSetLibPath()单元中的Indy IdSSLOpenSSLHeaders函数来告诉它如果需要的话,Indy所在的位置。

    在致电Port时仔细检查Connect()媒体资源。设置UseTLS属性实际上可以更改Port值。如果您需要设置这两个属性,请先设置UseTLS,然后设置Port,如果您需要使用不同的值,那么Indy指定的值。