У меня есть функция в Perl, который считывает пакет из шаблона следующим образом:требования функции Распаковки в Perl
sub read_packet {
my $contents = shift;
my @decode = unpack('nnnN', $contents);
my $version = $decode[0];
my $identifier = $decode[1];
my $type = $decode[2];
my $size = $decode [3];
@contents = ($version, $identifier, $type, $size);
return (@contents);
}
Изменения требовалось шаблон в распаковке функции. Теперь $ identifier должен поддерживать 32 бита, поэтому согласно PerlMonks: Pack/Unpack Tutorial (aka How the System Stores Data) (N) -> n, N A 16/32 битное значение в сетевом порядке (big-endian).
Таким образом, функция была переписана с учетом этого небольшого изменения. Теперь программа, отправляющая «пакет», может отправлять 16/32-битные значения. Заказчик потребовал от меня поддержки как 16/32 бит. Что я могу узнать, когда пакет содержит 16 или 32-битный идентификатор?
проверить размер пакета? – choroba
@choroba, я не могу найти документ для этого, пелаза, можете ли вы указать мне на документацию. – crsuarezf