PDA

Просмотр полной версии : Хелп плз))


Roman32
01.07.2012, 11:16
Приходит 10 пакетов одинаковых одновременно,надо чтоб 1 принимал остальное 9 блочил а то из-за них лаги,помогите замутить)

goodvin1709
01.07.2012, 14:05
const
name='Твойник';
var
Q:Boolean;
Procedure Init;
begin
q:=false;
end;
Procedure Free;
begin
end;
begin
if (fromServer) and (Connectname=name) and (pck[1]=#$Первый байт твоего пакета) and (q=false) then
begin
q:=true;
SendMSG('Пакет принят');
end;
end.
Попробуй я хз накидал приблизительно,не тестил.

Roman32
01.07.2012, 15:13
Не,не помогло не блочит)

SeregaZ
01.07.2012, 17:07
так код только на отлов первого и выставление флага. теперь добавляй условие - если флаг есть и пакет равен тому твоему, то блочить.


const
name='Твойник';
var
Q:Boolean;
Procedure Init;
begin
q:=false;
end;
Procedure Free;
begin
end;
begin
if (FromServer) and (Connectname=name) and (pck[1]=#$01) then
begin
if (q=false)
then
begin
q:=true;
SendMSG('Пакет принят');
end
else begin
pck:='';
end;
end;
end.


с ендами и синтаксисом елсе мог напутать :)

Roman32
01.07.2012, 17:40
Не разобрался я где ты там напутал)не пашет Else

SeregaZ
01.07.2012, 20:56
поправил... но вобще надо было объяснить суть, а не писать все за тебя...

Roman32
01.07.2012, 23:51
Я бы с радостью,но не разбираюсь в паскале,большое спс

goodvin1709
02.07.2012, 00:57
Сори,забыл заблочить еще пакет)

Pinko
07.07.2012, 00:58
ПИСАТЬ так писать

if (FromServer) and (Connectname=name) and (pck[1]=#$01) then

begin
if (q=false)
then
begin
q:=true;
SendMSG('Пакет принят');
end
else begin
SendMSG('Пакет В ПОМОЙКУ !!!!!!!!!!!!');
pck:='';
end;

goodvin1709
07.07.2012, 01:06
Pinko, Дорогой пользователь, не хочу вас оскорблять но для начала выучите синтаксис паскаля,проверьте свой код и потом постите его,берите код в [HIGHLIGHT="Delphi"],Спасибо.

Pinko
07.07.2012, 01:12
goodvin1709,
А ТАК ЧИТАТЬ ВЫ НЕ УМЕЕТЕ ????????????????

Пепельница Для тем - мусора...