使用Indy的IdTCPClient.Connect循环多次连接某些主站,会出现thread creation error,请高手帮忙。(200)

  • 主题发起人 主题发起人 frankwun
  • 开始时间 开始时间
F

frankwun

Unregistered / Unconfirmed
GUEST, unregistred user!
代码如下: SetProXYInfo(FIdSocksInfo); //设置代理信息 FIdIOHandlerSocket.SocksInfo:=FIdSocksInfo; FIdTCPClient.IOHandler:=FIdIOHandlerSocket; for m:=1 to 100 do begin for i:=0 to 3 do //连接4个不同的主站 begin try FIdTCPClient.Host:=ip; FIdTCPClient.Port:=port; FIdTCPClient.Connect(6000); AddToLog('连接成功:'+ip); Sleep(300); //sleep时间设为2000,也存在同样的问题 FIdTCPClient.Disconnect; except on E: Exception do begin AddToLog('连接失败:'+ip+E.Message); Sleep(1000); //sleep时间设为2000,也存在同样的问题 end; end; end; end; 在多台电脑上测试,其中只有一台内存为256m的报错,没报错的电脑内存都超过512m。 报错信息:连接失败:**** thread creation error:存储空间不足,无法处理此命令。 报错时间:一般都能连上,少数时间报错,一旦第一次出现这个错误,后面会连续报错(连接失败)。 该问题搜遍google,没有找到解决方案,特来请教高手,分大大的奉上。
 
补充:这段代码放在主线程中执行,更容易出错。放在子线程中,出错的概率小些。
 
大富翁人烟稀少啊,在csdn和盒子上我提了同样的问题,都很快得到了回复,这里半天没动静,自己顶一下。
 
indy的bug不少,很多控件的都有内存泄露问题。尝试每次连接前创建,断开后释放FIdTCPClient,你看看还能出现这个问题。
 
后退
顶部