Извени но твой оригинал у меня не работает, рвёт соединение программа, я добился работа способности только перенеся вот эту строку и добавив следом ещё одну, из-за этого перематюкался?) :
NoFreeOnServerDisconnect;
NoFreeOnClientDisconnect;
ну и ещё у меня пакет на logout другой.
Пожалуйста объясни где я не прав.
Добавлено через 1 час 27 минут
Всё заработало и дествительно плакать хочеться от того что я там наворотил в общем кому интересно вот работает:
const
CHAR_NAME = 'HKfk';
var
logoutok : boolean;
procedure init;
begin
logoutok := false;
end;
begin
if pck='' then exit;
if (ConnectName=CHAR_NAME) and (FromClient) and (pck[1]=#$00) then
begin
pck := ''; //или реквайст должен пройти на сервер ?
//Не забыл ли ты обнулить пакет ?
NoFreeOnClientDisconnect; //разрешить отключение клиента онли. при отключении сервера тунель будет разрушаться, что и должно происходить.
NoFreeOnServerDisconnect;
logoutok := true; //флаг
buf:=#$84; //шлем логауток на клиент
SendToClientEx(CHAR_NAME);
end;
if (ConnectName=CHAR_NAME) and FromServer and logoutok then pck := ''; //!!!! не пропускать пакеты на клиент через ПХ!! если он уже отключен.
end.
в твоей версии небыло вот этой строки:
NoFreeOnServerDisconnect;
у меня без неё не работает, и также у меня отличаються пакеты но это не суть главная вон та строчка.
Спасибо за всё.
А и ещё вопрос:
Вот теперь клиент закрыт а соединение висит, но не идут пакеты от сервера, вот если я активирую скрипт с наличием условия прихода пакета от сервера, он работать будет или нет?
Всё и с этим уже разобрался)
Последний раз редактировалось kpa9pt, 14.01.2010 в 11:41.
Причина: Разобрался что к чему)
|