Просмотр полной версии : задержка пакета
Здраствуйте, хотел бы узнать возможно ли задержать пакет, т.е чтобы пакет доходил до сервера к примеру через 10-15 сек после его отправки ? и как бы это сделать, пакет вот такой 19 92 F1 10 40 00 00 00 00
всем заранее спс.
мм... возможно дадите ссылочку где можно почитать и понять как это сделать ?
а поиск на что
хотя бы это
объясните новичку (http://coderx.ru/showthread.php?t=2016&highlight=%E7%E0%E4%E5%F0%E6%EA%E0+%EF%E0%EA%E5%F2 %E0)
Ссылка (http://coderx.ru/search.php?searchid=183415)
как остроумно :D , эмм... ну а все же ?
Добавлено через 1 минуту
а поиск на что
хотя бы это
объясните новичку (http://coderx.ru/showthread.php?t=2016&highlight=%E7%E0%E4%E5%F0%E6%EA%E0+%EF%E0%EA%E5%F2 %E0)
омг, сори искал скал не нашол а в шапку не глянул xDDD
Добавлено через 14 минут
эмм.... порылся нашол, и попытался подсроить под себя вот что получилось
const
Name='nick';
var timer:TTimer;
phase:integer;
procedure Init;
begin
timer:=TTimer.Create(nil);
timer.interval:=100;
timer.OnTimer:=@fireTimer;
timer.enabled:=Free;
end;
begin
if FromClient and (ConnectName=Name) and (pck = HStr(19 92 F1 10 40 00 00 00 00)) then begin
timer.enabled:=true;
end;
вобщем мне нада чтобы было к премеру так что я посылаю пакет далее идет задержка N сек поистечении которых сервер получает этот пакет, посмотрите пожалуст соответствует ли этот скрипт тому что я написал ?
Здраствуйте, хотел бы узнать возможно ли задержать пакет, т.е чтобы пакет доходил до сервера к примеру через 10-15 сек после его отправки ? и как бы это сделать, пакет вот такой 19 92 F1 10 40 00 00 00 00
всем заранее спс.
10-15 сек
это
timer.interval:=10000-15000;
ага и типа пакет который надо задержать лучше запомнить убить что бы он не ушёл, а потом включить таймер и отправить. в твоём варианте пакет будет улетать и таймер включатся, что в целом не имеет смысла
вроде так
var
Timer01: TTimer;
procedure OnTimer01(Sender: TObject);
begin
buf:=hstr('19 92 F1 10 40 00 00 00 00'); //отсылаем пакет
SendToServer; // на сервер
Timer01.enabled:=false; //останавливаем таймер
end;
procedure Init;
begin
Timer01:=TTimer.Create(nil); //выделяем памать и т.п.
Timer01.OnTimer:=@OnTimer01; //привязываем процедуру к событию
Timer01.enabled:=false; //начальное положение включен/выключен
Timer01.interval:=10000; //интервал
end;
procedure Free;
begin
timer01.free;
end;
begin
if FromClient and (pck = HStr('19 92 F1 10 40 00 00 00 00')) then begin
Timer01.enabled:=true;
pck:='';
end;
end.
Стоит изменить процедуру OnTimer1 так:
procedure OnTimer01(Sender: TObject);
begin
buf:=hstr('19 92 F1 10 40 00 00 00 00');
SendToServer; //отсылаем пакет на сервер
Timer01.enabled:=false; //останавливаем таймер
end;
не запускается пишет ошбка BEGIN на
Timer01: TTimer;
rocedure OnTimer01(Sender: TObject);
begin
Стоит изменить процедуру OnTimer1 так:
procedure OnTimer01(Sender: TObject);
begin
buf:=hstr('19 92 F1 10 40 00 00 00 00');
SendToServer; //отсылаем пакет на сервер
Timer01.enabled:=false; //останавливаем таймер
end;
да забыл отослать
и таймер остоновить
поправил
Добавлено через 4 минуты
не запускается пишет ошбка BEGIN на
Timer01: TTimer;
rocedure OnTimer01(Sender: TObject);
begin
нету ошибки !!!
скопировал полностью ?
впечетление нехватает var в начале
да забыл отослать
и таймер остоновить
поправил
Добавлено через 4 минуты
нету ошибки !!!
скопировал полностью ?
впечетление нехватает var в начале
действительно, спасиб.
vBulletin® v3.6.11, Copyright ©2000-2024, Jelsoft Enterprises Ltd. Перевод: zCarot