Странно добавил вроде вот эту строку
if (ConnectName=CHAR_NAME) and FromServer and logoutok then pck := '';
но пакеты на клиент всё равно идут.
вот что я в целом написал:
const
CHAR_NAME = 'HKfk';
var
logoutok : boolean;
procedure init;
begin
logoutok := false;
end;
begin
if pck='' then exit;
NoFreeOnServerDisconnect;
NoFreeOnClientDisconnect; //разрешить отключение клиента онли. при отключении сервера тунель будет разрушаться, что и должно происходить.
if (ConnectName=CHAR_NAME) then begin
if (FromClient) then begin
if (pck[1]=#$09) then
begin
Pck:='';
//Не забыл ли ты обнулить пакет ?
//pck := 0 или реквайст должен пройти на сервер ?
logoutok := true; //флаг
buf:=#$7E; //шлем логауток на клиент
SendToClientEx(CHAR_NAME);
end;
end;
end;
if (ConnectName=CHAR_NAME) and FromServer and logoutok then pck := ''; //!!!! не пропускать пакеты на клиент через ПХ!! если он уже отключен.
end.
|