Вверх ↑
Разработчик
Ответов: 25654
Рейтинг: 2085
#1: 2013-01-16 20:07:27 ЛС | профиль | цитата
Netspirit писал(а):
Наверное, для этого служит точка doCloseAll.

Но эта точка не уничтожает экземпляр сервера, а только отсоединяет всех клиентов
------------ Дoбавленo в 20.07:
Если залезть в дебри, то видно, что отсоединяются все клиенты при уничтожении экземпляра класса по doClose

destructor TSocket.Destroy;
begin
Close;
if FList<>nil then DisconnectClients;
if FParent<>nil then FParent.FList.Remove(Self);
AllSockets.Remove(Self);
if AllSockets.Count=0 then DestroyWindow;
end;

procedure TSocket.DisconnectClients;
var i:smallint;
begin
for i := FList.Count-1 downto 0 do with Connections[i] do
begin
Close;
Destroy;
end;
FList.Clear;
end;


onCloseAll делает только отсоединение

procedure THITCP_Server._work_doCloseAll;
begin
Sock.DisconnectClients;
end;


карма: 19

0