Показать сообщение отдельно
Старый 13.01.2010, 20:02   #3
Местный
 
Аватар для kpa9pt
 
Регистрация: 13.01.2010
Сообщений: 159
Сказал Спасибо: 18
Имеет 30 спасибок в 23 сообщенях
kpa9pt имеет немного плохого в прошлом
По умолчанию

Странно добавил вроде вот эту строку

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.
kpa9pt вне форума   Ответить с цитированием