Вверх ↑
Разработчик
Ответов: 25671
Рейтинг: 2086
#1: 2013-01-17 00:03:20 ЛС | профиль | цитата
Netspirit писал(а):
но не отключает уже подключенных клиентов

Ты это серверу расскажи, он-то передать клиенту ничего не может, только принимает. Одностороннее соединение какое-то
------------ Дoбавленo в 23.47:
Netspirit, ИМХО. Вот так правильно должно быть, но код построен так, что больше экземпляр не создашь. Изначально неправильно реализован алгоритм работы.

procedure THITCP_Server._work_doClose;
begin
// Sock.Close;
Sock.Destroy;
end;


Смотри, как это реализовано в TCP_ServerEx

procedure THITCP_ServerEx.Close;
var i:integer;
begin
if Assigned(FSock) then begin
for i:=0 to FSock.Count-1 do
FSock.Connections[i].Close;
FSock.Destroy;
FSock := nil;
end;
end;

------------ Дoбавленo в 00.03:
Я так подумал, но чтобы ничего не переделывать и оба сервера работали похожим образом, то можно сделать вот так

procedure THITCP_Server._work_doClose;
begin
Sock.DisconnectClients;
Sock.Close;
end;

карма: 20

0