Я пытаюсь установить связь между встроенным устройством и сервером, где код сервера написан на PHP. Я смог сделать это с помощью функции pack (), с которой я смог работать. Однако теперь я хочу отправить действительно длинный пакет, и сам пакет таков, что содержит N записей некоторого расписания. Поэтому мне нужно отправить информацию о «N» перед повторением этих много раз, а затем отправить каждое расписание.
Теперь я пытался понять, может ли объединение вывода pack () помочь мне выполнить задачу, с тех пор я смогу сделать что-то вроде этого:
// Pack EPOCH & 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++;
}
Но конкатенация не работает должным образом (что подтверждается распаковкой на встроенном устройстве). Я подозреваю, что в игре может быть что-то вроде "endian-ness"?
Может кто-нибудь сказать мне, почему простая конкатенация не работает. Кроме того, как решить эту проблему?