Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как правильно уничтожить объект TClientSocket? [D5, WinME]


SergP ©   (2003-08-13 15:10:00) 

Делаю так:
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1060769191&n=3

Вобщем уничтожаю ненужный сокет:
CS:array[0..50] of TClientSocket;
...
for j:=0 to 50 do
if assigned(CS[j]) and (CS[j].tag=handl) then
begin
CS[j].active:=false;
CS[j].Free;
cs[j]:=nil;
end;

Подозреваю что неправильно.
Нужно ли прежде чем уничтожать сокет дождаться его дисконекта?
Если да - то можно ли его уничтожать в процедуре-обаботчике им же сгенерированного события?


Anatoly Podgoretsky   (2003-08-14 22:38:00) [1]

Вроде бы жирным выделен ответ на твой вопрос


SergP   (2003-08-14 22:20:00) [2]

А поподробнее можно? А то не представляю что мне с этим делать...


Skier   (2003-08-13 15:15:00) [3]

destructor TCustomWinSocket.Destroy;
begin
FOnSocketEvent := nil; { disable events }
if FConnected and (FSocket <> INVALID_SOCKET) then
Disconnect(FSocket);
if FHandle <> 0 then DeallocateHWnd(FHandle);
FSocketLock.Free;
Cleanup;
FreeMem(FGetHostData);
FGetHostData := nil;
inherited Destroy;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо