1 голос 944 просмотра 5.04.2018 / 16:17
GreeNLine
Всем привет. На повестке дня такой вопрос, допустим, мне нужно будет отправить на сторонний сервер какой-нибудь пакет данных (закодированных) байтов. К примеру целочисленное значение (int), булевое (boolean), и строку (не важно в utf или ascii). Как можно всё это организовать.=== Я нашёл всего несколько решений данной проблемы и то неуверен верны ли они. 1. Запаковывать всё в unpack, потом форматировать в hex и отправлять. 2. Запаковывать всё в pack и отправлять в голом виде. ну и еще одно, ложное мб, мб нет, сначала форматировать с помощью ord и потом форматировать в hex, но есть трабла с этим, т.к ord выдаёт значение больше чем в диапазоне 0-255, поэтому я стал пользоваться 1-м способом. Как вы считаете, как правильней, мб всё неверно..?
5.04.2018 / 17:01
MasterOS
по-моему 1й
Ответы
1 голос
Изм. aNNiMON
от 5.04.2018 / 17:02
0 голосов
12.04.2018 / 09:00
GreeNLine
и писал обработчик для работы с флэш приложением на php, оно отсылает пакеты данных в диапазоне от 0xXXXX до 0xXXXXXX, первый байт - заголовок, второй опкод и т.д..
0 голосов // ставим флажок типа данных C*, т.е unsigned char +* значит, что все значения строковые $int_a = unpack("C*", "test"); // на выходе получаем массив целочисленных значений // output: Array ( [1] => 116 [2] => 101 [3] => 115 [4] => 116 ) // дальше я так понял, что нужно int перевести в hex, сделал я это так: $hex_a = array(); foreach($int_a as $int) { $hex_a[] = sprintf('0x%02X', $int); } // и на выходе я получил следующее: // output: Array ( [0] => 0x74 [1] => 0x65 [2] => 0x73 [3] => 0x74 ) // что дальше-то? в implode(null, $hex_a) и отправка или чё? Всего: 3
|
Реклама |