开发时连接太多

Maw*_*awg 0 sockets delphi indy10 delphi-xe2

我正在尝试(在这个社区的帮助下)将我的第一个客户端/服务器应用程序放在一起.

我正在使用Indy 10和Delphi Xe2,但怀疑我的问题不在于那些,而是在于如何使用套接字(如果你问我,那就是巫术和黑色艺术).

因为我经常按下异常的断点并逐步执行我的代码,然后按Alt + F2停止,我的下一次运行经常会遇到异常"已经连接",最终我得到"太多的连接".

我怎么能整理一下呢?

(另外,有没有人有一个使用try ...的演示,除了,还有尝试...最终在Indy演示中?)

Rem*_*eau 5

"已连接"发生在当你调用客户端Connect(),同时Connected()还返回true.如果你断开连接并留下未读数据,通常会发生这种情况IOHandler.InputBuffer.尝试清除InputBuffer之前重新连接.这是常见的,因此对Indy的近期更新可能会解决该问题.

"连接太多"意味着您将服务器的MaxConnections属性设置为正的非零值,并且当新客户端尝试连接时,许多并发客户端已连接到服务器.如果您认为没有进行多次同时连接,那么通常意味着您没有在服务器代码中正确管理连接,因此断开连接的客户端会得到正确清理.最常见的原因是在您的代码中放置异常处理程序,以捕获并吞噬Indy的内部异常.如果你确实捕获了异常,请务必重新引发任何派生的异常EIdException并让服务器在内部处理它们.