如何在C#中读取二进制字符串?

时间:2010-05-15 08:39:41

标签: c# php silverlight post

有一个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应用程序通过POST协议接收$ binary_string。我该如何解析这个二进制字符串?

或许有更好的方法将矩阵从PHP发送到Silverlight?

3 个答案:

答案 0 :(得分:1)

也许基本的方法是发送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;
}

答案 1 :(得分:1)

如果您将数据设为System.IO.Stream类型,则可以直接使用read方法。

答案 2 :(得分:1)

在System.IO命名空间中,您还可以使用BinaryReader类。请参阅此位置的文档BinaryReader

我认为这应该有所帮助。如果您需要更多帮助,也许您还应该从您的银色方面提供一些代码。