Почему AMFPHP хранит целые числа как два байта для протокола AMF? - PullRequest
0 голосов
/ 04 декабря 2009

Мне интересно, может ли кто-нибудь, знакомый с AMFPHP или хранилищем данных низкого уровня, объяснить, почему целые числа хранятся в виде двух байтов вместо четырех. Насколько я могу судить, протокол AMF3 требует четырехбайтового целого числа. Конкретный код в сериализаторе следующий:

/**
 * writeInt takes an int and writes it as 2 bytes to the output stream
 * 0-65535 range
 * 
 * @param int $n An integer to convert to a 2 byte binary string
 */
function writeInt($n) {
    $this->outBuffer .= pack("n", $n); // use pack with the n flag
} 

Я понимаю, что этот вопрос может быть слишком конкретным, но может ли кто-нибудь помочь ответить на мой вопрос?

1 Ответ

1 голос
/ 18 января 2010

Смотрите здесь довольно хорошее объяснение, как это работает: Структура сообщения AMF?

...