Вверх ↑
Разработчик
Ответов: 26235
Рейтинг: 2140
#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;


карма: 22

0