有一个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?
答案 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
我认为这应该有所帮助。如果您需要更多帮助,也许您还应该从您的银色方面提供一些代码。