Как я могу прочитать двоичную строку в C #? - PullRequest
0 голосов
/ 15 мая 2010

Существует скрипт php, который отправляет двоичную строку клиентскому приложению:

$binary_string = pack('i',count($result_matrix));   
foreach ($result_matrix as $row)
{
    foreach ($row as $cell)
    {
        $binary_string .= pack('d',$cell);
    }
}
echo $binary_string;

Приложение Silverlight получает $ binary_string по протоколу POST. Как я могу разобрать эту двоичную строку?

Или, может быть, есть лучший способ отправить матрицу из PHP в Silverlight?

Ответы [ 3 ]

1 голос
/ 15 мая 2010

Если вы получаете данные типа System.IO.Stream, вы можете напрямую использовать метод read.

1 голос
/ 15 мая 2010

В пространстве имен System.IO вы также можете использовать класс BinaryReader. См. Документацию по этому адресу BinaryReader

Я думаю, это должно помочь. Если вам нужна дополнительная помощь, возможно, вам также следует предоставить код со стороны Silverlight.

1 голос
/ 15 мая 2010

Может быть, самый простой способ отправить данные XML? Причина в том, что на стороне Silverlight вы должны не только распаковывать двоичные данные, упакованные с помощью функции php, но также иметь знания о том, как структура данных упаковывается в скрипт php, представленный в двоичных данных.

Если вы будете использовать формат HEX для упаковки, используйте что-нибудь подобное для распаковки данных:

static byte[] UnpackHex(string hexvalue)
{
        if (hexvalue.Length % 2 != 0)
                hexvalue = "0" + hexvalue;
        int len = hexvalue.Length / 2;
        byte[] bytes = new byte[len];
        for(int i = 0; i < len; i++)
        {
                string byteString = hexvalue.Substring(2 * i, 2);
                bytes[i] = Convert.ToByte(byteString, 16);
        }
        return bytes;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...