Indy的IdUDPServer的Bindings如何自己手动释放
lbg 2005-05-24 02:28:18 我是根据ini文件来绑定IP的,代码如下
//根据ini文件的Bindings内容来绑定IP和端口
//inifile:
//[Bindings]
//ip= port
//udps是TIdUDPServer
TStrings *ips=new TStringList();
TIniFile* pif = new TIniFile(ExtractFilePath(Application->ExeName )+"option.ini");
pif->ReadSection("Bindings",ips);;
udps->DefaultPort=0;
for(int i=0;i<ips->Count;++i)
{
TIdSocketHandle *had=new TIdSocketHandle(udps->Bindings);
had->IP=ips->Strings[i] ;
had->Port=pif->ReadInteger("Bindings",ips->Strings[i],7515);
if(had->IP!="") udps->Bindings->Add();
}
delete pif;
delete ips;
udps->Active =true;
释放的时候是这样的:
for(int i=0;i<udps->Bindings->Count;++i)
{
if(udps->Bindings->Items[i]->IP!="")
{
udps->Bindings->Items[i]->CloseSocket(true);
}
}
udps->Bindings->Clear() ;
udps->Active =false;
这样释放有问题,请高手提示