Forum Webscript.Ru

Программирование => Perl => Тема начата: gor от 28 Октября 2004, 10:05:26

Название: Работа с длинной двоичной переменной побайтно
Отправлено: gor от 28 Октября 2004, 10:05:26
Формирую некий двоичный пакет с разными данными следующим образом:

$packet = pack("C",hex FF).pack("L",$time);
$packet .= pack ("a4",inet_aton($shost));
$packet .= pack ("a4",inet_aton($dhost));
$packet .= pack ("I2",$sport,$dport);

В общем, неважно что там внутри, я просто хотел показать, что данные там разнородные.
Так вот.
Как мне перед отправкой этого пакета проверить каждый байт на равенство "FF"? Мне нужно каждый байт "FF" дополнить до двух байт - "FFFF".
Название: Работа с длинной двоичной переменной побайтно
Отправлено: gor от 28 Октября 2004, 12:02:06
Простите, господа, переволновался :)
Сделал так:
@klop = unpack ("C26",$packet);
for ($i=0;$i<26;$i++) {
  $msg .= ($klop[$i]==255)?
   (pack("C",hex FF).pack("C",hex FF)):
   (pack("C",$klop[$i]));
}