没有解决众所周知的idMappedPortTCP问题?

use*_*931 -3 delphi delphi-xe2

我正在使用Delphi XE2和indy 10.5.8.0

我遇到了6年前这篇文章中描述的完全相同的问题!

http://www.delphigroups.info/2/1/213924.html

我有一个简单的表单,只有idMappedPortTCP组件设置为活动状态.它按预期工作几秒钟转发输入/输出,而不是突然冻结.该组件停止响应,而应用程序中的其他所有内容仍然有效

遗憾的是同样的项目就像indy9的冠军一样!但我不能使用indy9我必须坚持使用indy10 :(

我无法相信没有人为这个众所周知的问题提供解决方案或解决方法.必须有一个解决方案!

Rem*_*eau 9

当时没有做任何事情,因为它没有任何关系.正如我在6年前的讨论中所解释的那样,根本问题是由微软在某些条件下在旧操作系统版本下的冻结API函数引起的.当时那不是印第安人的问题,今天不是印第安人的问题.今天,唯一的方法是select()挂起,如果它正在等待从未发生的套接字上的状态更改.因为默认情况下Indy使用无限超时,所以当Indy真的是一个网络问题时,它看起来像是一个挂起.换句话说,Indy正在等待从未到过的入站数据.您可以使用数据包嗅探器来验证.