PDA

Просмотр полной версии : задержка пакета


ruslan
13.08.2009, 11:29
Здраствуйте, хотел бы узнать возможно ли задержать пакет, т.е чтобы пакет доходил до сервера к примеру через 10-15 сек после его отправки ? и как бы это сделать, пакет вот такой 19 92 F1 10 40 00 00 00 00
всем заранее спс.

TAMBIK
13.08.2009, 12:24
мм... возможно дадите ссылочку где можно почитать и понять как это сделать ?

а поиск на что
хотя бы это
объясните новичку (http://coderx.ru/showthread.php?t=2016&highlight=%E7%E0%E4%E5%F0%E6%EA%E0+%EF%E0%EA%E5%F2 %E0)

ruslan
13.08.2009, 12:42
Ссылка (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 сек поистечении которых сервер получает этот пакет, посмотрите пожалуст соответствует ли этот скрипт тому что я написал ?

TAMBIK
13.08.2009, 12:50
Здраствуйте, хотел бы узнать возможно ли задержать пакет, т.е чтобы пакет доходил до сервера к примеру через 10-15 сек после его отправки ? и как бы это сделать, пакет вот такой 19 92 F1 10 40 00 00 00 00
всем заранее спс.

10-15 сек
это
timer.interval:=10000-15000;

Grinch
13.08.2009, 12:54
ага и типа пакет который надо задержать лучше запомнить убить что бы он не ушёл, а потом включить таймер и отправить. в твоём варианте пакет будет улетать и таймер включатся, что в целом не имеет смысла

TAMBIK
13.08.2009, 13:07
вроде так
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.

NLObP
13.08.2009, 15:28
Стоит изменить процедуру OnTimer1 так:
procedure OnTimer01(Sender: TObject);
begin
buf:=hstr('19 92 F1 10 40 00 00 00 00');
SendToServer; //отсылаем пакет на сервер
Timer01.enabled:=false; //останавливаем таймер
end;

ruslan
13.08.2009, 16:49
не запускается пишет ошбка BEGIN на

Timer01: TTimer;

rocedure OnTimer01(Sender: TObject);
begin

TAMBIK
13.08.2009, 17:34
Стоит изменить процедуру 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 в начале

ruslan
13.08.2009, 18:19
да забыл отослать
и таймер остоновить
поправил

Добавлено через 4 минуты


нету ошибки !!!
скопировал полностью ?
впечетление нехватает var в начале

действительно, спасиб.