#php #pack #unpack
#php #пакет #распакуйте
Вопрос:
Я пытаюсь установить связь между встроенным устройством и сервером, где серверный код написан на PHP. Я смог сделать это с помощью функции pack (), которую я могу заставить работать. Однако теперь я хочу отправить действительно длинный пакет, и сам пакет таков, что он содержит N записей некоторого расписания. Итак, я должен отправить информацию «N», прежде чем повторять их много раз, а затем отправить каждое расписание.
Теперь я пытался понять, может ли конкатенация выходных данных pack () помочь мне выполнить задачу, с тех пор я смогу сделать что-то вроде этого:
// Pack EPOCH amp; Number of Schedules
$pkt = pack("Nn", time(), $num_schedule);
// Now iterate
$i = 0;
while($i < $num_schedule) {
$schedule_time = $schedule[$i]["time"] // Start Time in epoch for one day
$schedule_weekday = $schedule[$i]["weekday"] // Contains 0-6
// Pack individual entry, concatenate!
$pkt .= pack("nn", $schedule_time, $weekday);
$i ;
}
Но конкатенация работает не так, как ожидалось (что подтверждается распаковкой на встроенном устройстве). Я подозреваю, что здесь может быть задействована некоторая «порядковость»?
Может ли кто-нибудь сказать мне, почему простая конкатенация не работает. Кроме того, как исправить эту проблему?