如何读取C#中的二进制字符串?
有一个php脚本将二进制字符串发送到客户端应用程序:如何读取C#中的二进制字符串?,c#,php,silverlight,post,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协议接收$bi
$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_字符串。如何解析这个二进制字符串
或者有更好的方法将矩阵从PHP发送到Silverlight?最基本的方法是发送XML数据?原因是,在Silverlight方面,您不仅需要解包二进制数据(用php函数打包),还需要了解如何用php脚本将数据结构打包为二进制数据 如果要使用十六进制格式进行打包,请使用以下方法来解包数据:
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;
}
静态字节[]解压十六进制(字符串十六进制值)
{
如果(hexvalue.Length%2!=0)
hexvalue=“0”+hexvalue;
int len=hexvalue.Length/2;
字节[]字节=新字节[len];
对于(int i=0;i
也许最基本的方法是发送XML数据?原因是,在Silverlight方面,您不仅需要解包二进制数据(用php函数打包),还需要了解如何用php脚本将数据结构打包为二进制数据
如果要使用十六进制格式进行打包,请使用以下方法来解包数据:
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;
}
静态字节[]解压十六进制(字符串十六进制值)
{
如果(hexvalue.Length%2!=0)
hexvalue=“0”+hexvalue;
int len=hexvalue.Length/2;
字节[]字节=新字节[len];
对于(int i=0;i
如果以System.IO.Stream
类型获取数据,则可以直接使用方法read
如果以System.IO.Stream
类型获取数据,则可以直接使用System.IO命名空间中的方法read,还可以使用BinaryReader类。请参阅此位置的文档
我认为这应该有帮助。如果您需要更多帮助,也许还应该从silverlight方面提供一些代码。在System.IO名称空间中,您还可以使用BinaryReader类。请参阅此位置的文档
我认为这应该有帮助。如果您需要更多帮助,也许您还应该从silverlight方面提供一些代码。什么是“二进制字符串”?二进制数字系统或base-2数字系统使用两个符号0和1表示数值。实际上,二进制数据可以用任何基本数字系统来表示,如base-16或base-8,因为存在从bsae-2到base-8或base-16的转换。这两种格式i
和d
都具有与机器相关的格式和字节顺序/表示。例如,编译为64位的php版本将发送不同于32位php版本上运行的同一脚本的数据。“二进制字符串”对您来说是什么?二进制数字系统,或base-2数字系统,使用两个符号0和1表示数值。实际上,二进制数据可以用任何基本数字系统来表示,如base-16或base-8,因为存在从bsae-2到base-8或base-16的转换。这两种格式i
和d
都具有与机器相关的格式和字节顺序/表示。例如,编译为64位的php版本将发送不同于32位php版本上运行的同一脚本的数据。